问题描述
我正在使用“apollo-server-express”,我想创建一个查询,该查询必须按同一字段在不同集合中进行搜索。
这是我的架构:
import { gql } from 'apollo-server-express';
export default gql `
extend type Query {
search(contains: String!): SearchResult
}
union SearchResult = Race | Person | Car
type Race {
id: String
city: String
name: String
}
type Person {
id: String
name: String
}
type Car {
id: String
name: String
}
`;
这是我的解析器: 导出默认值{
SearchResult: {
__resolveType(obj,context,info) {
if (obj instanceof Race) {
return 'Race';
}
if (obj instanceof Person) {
return 'Person';
}
if (obj instanceof Car) {
return 'Car';
}
return null;
}
},Query: {
search: async (parent,{ str },{ models }) => {
const races = await models.Race.find({ 'name': str });
const persons = await models.Person.find({ 'name': str });
const cars = await models.Car.find({ 'name': str });
return [...races,...persons,...cars];
}
}
}
query search {
search(contains: "something") {
__typename
... on Race {
name
city
}
... on Person {
name
}
... on Car {
name
year
}
}
}
我得到了这个结果,但我想按集合分组。 我得到:
"search": [
{
"__typename": "Person","name": "JOY MISHKA"
},{
"__typename": "Person","name": "PAISES BAJOS"
},"name": "ENJOY THE RIDE"
},...
我想要这样的东西:
"search": [
{
"__typename": "Person" [
"name": "JOY MISHKA"
"name": "PAISES BAJOS"
"name": "ENJOY THE RIDE"
]
} ...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)