我正在努力学习GraphQL(
query getLocationByPerson {
People {
firstName
lastName
service {
location
}
}
}
我只得到一级字段,比如:
{
"data": {
"People": [
{
"firstName": "xxx",
"lastName": "XXXXX",
"service": null
}
}
以下是我的模式:
type Query {
People: [PeopleObject]!
PeopleByName(lastName: String!): [PeopleObject]
PeopleByID(id:ID!): [PeopleObject]
Service: [ServiceObject]
ServiceByID(id:ID!): [ServiceObject]
}
type PeopleObject {
id: ID!
Xid: String!
firstName: String!
lastName: String!
email: String!
serviceId: String
apps: [String]
service: [ServiceObject]
}
type ServiceObject {
id: ID!
name: String!
location: String!
}
我的解析器:
const queries = {
People: () => People.find({}),
PeopleByName: (root,args,context,info) => People.find({lastName: args.lastName}),
PeopleByID: (root,args,context,info) => People.find({_id: args.id}),
Service: () => Service.find({}),
ServiceByID: (root,args,context,info) => Service.find({_id: args.id})
};
知道我做错了什么吗?
您的语法非常适合从graphql获取任何数据
type Query {
People: [PeopleObject]!
}
type PeopleObject {
id: ID!
Xid: String!
firstName: String!
lastName: String!
email: String!
serviceId: String
apps: [String]
service: [ServiceObject]
}
type ServiceObject {
id: ID!
name: String!
location: String!
}
为了简单起见
type Query {
People: [{
id: ID!
Xid: String!
firstName: String!
lastName: String!
email: String!
serviceId: String
apps: [String]
service: [{
id: ID!
name: String!
location: String!
}]
}]!
}
但你只有人回来
People: () => People.find({}),
您应该返回服务数组对象,以便与人一起获取该返回对象
人:()=
[{
id: '5c5ac87e5e4d85ae77de9c50'
Xid: 'xx'
firstName: 'yyy'
lastName: 'zzz'
email: 'xxx@gmail.com'
serviceId: '5c5ac87e5e4d85ae77de9c51'
apps: ['testing', 'google']
service: [{
id: 5c5ac78d5e4d85ae77de9c4f,
name: 'Tester',
location: 'US America',
}, {}]
}, {}]
如果您使用mongoose,请使用聚合从mongoBD获取数据。
您需要传递服务中location对象的引用,该引用与您的mongoose模型相同(我假设您使用的是mongoose)。传递引用后,可以添加填充(reference)。服务查询中的exec()引用以下内容
我是Elasticsearch的新手,我提出了一个问题,Elasticsearch嵌套查询是否只能为嵌套字段返回匹配的嵌套文档。 对于示例,我有一个名为的类型,其中嵌套字段名为 和嵌套查询 我需要的是搜索有提到足球的评论的博客文章,每个博客文章的评论数与足球相匹配(在例子中它数为1,因为另一个评论刚刚提到篮球)。 然而,Elasticsearch似乎总是返回完整的文档,所以我如何才能实现它,或者我
和相应的查询解析器 这里的主要想法只是有一个过滤器,可以看到什么食谱有一些成分,用户会通过应用程序通知。 我使用数据库中的所有食谱获得了“recipe”查询,但我需要一个获取这些食谱的查询,然后使用field comprient进行筛选,例如: 食谱-糖蛋糕,配料:糖、蜂蜜、四个… 配方-天鹅绒蛋糕,配料:糖、香草、... 并且用户通知Sugar,API应该返回这2个食谱,但是如果用户通知Suga
我有以下POJO 在下面的类中,我想直接检索给定人员的嵌套字段“cars”,其名称作为参数传递,但它返回一个具有null值的列表。 但是,如果在上面的searchHits代码中,我将类更改为Person,如下所示,我将返回pojo Person,其中只填写属性“cars”(所有其他属性检索为null): 但是如何直接检索嵌套的属性车?
我遇到了一些实际的问题,比如使用字段增强来处理ElasticSearch。我已经看过关于这个主题的Nest文档,但它们没有特别大的帮助,所以我的代码实际上是基于这个问题的解决方案:使用Nest Field Boosting进行弹性搜索。 如果运行以下查询,我会得到一个结果,正如预期的那样: 然而,如果我尝试使用场增强,使用以下方法,我没有得到匹配: .OnFieldsWithBoost(d=>d.
以下模式在可选对象中包含非空字段(整个对象允许为空)。它定义了一个父对象的列表,这些父对象具有可选字段“孩子”——一些父对象允许具有空“孩子”。 以下GraphQL查询返回预期的父对象列表(其中一些具有null子值)。但它也返回附加到结果的错误。这是GraphQL(孩子是可选的)中的错误吗?还是预期行为?
是否可以使用spring data elasticsearch返回所有elasticsearch文档的特定嵌套字段? 例如。es数据存储库将如何查找以下查询? 网址: /myIndex/MyType/_search 查询正文: