Mongodb 合并或';参考';并通过GraphQL将对象转换为另一个对象?
对graphQL(和MongoDB)非常陌生,我想知道如何引用graphQL中的另一个对象 我在MongoDB的两个集合中有两个对象Mongodb 合并或';参考';并通过GraphQL将对象转换为另一个对象?,mongodb,graphql,apollo,Mongodb,Graphql,Apollo,对graphQL(和MongoDB)非常陌生,我想知道如何引用graphQL中的另一个对象 我在MongoDB的两个集合中有两个对象 { _id: 1, companies: [ { id: 1, name: 'Google' }, { id: 2, name: 'Apple' } ] } { _id:
{
_id: 1,
companies: [
{
id: 1,
name: 'Google'
},
{
id: 2,
name: 'Apple'
}
]
}
{
_id: 2,
jobs: [
{
id: 1,
title: 'Designer'
},
{
id: 2,
name: 'Developer'
}
]
}
设计师的工作是由谷歌发布的,我想将其包含在从GraphQL返回的对象中(我想我使用的是'id:1'作为引用?假设ObjectID可能是一种替代方法)
我该怎么做呢
理想情况下,我想回去
{
"data": {
"job": {
"id": 1,
"title": "Designer",
"company": {
id: 1,
name: "Google"
}
}
}
}
但不知道该怎么做,我现在有
resolvers.js
export const resolvers = {
Query: {
jobs: async (_parent, {}, context) => {
const jobs = await context.db
.collection('jobs')
.findOne()
return jobs.jobs
},
companies: async (_parent, {}, context) => {
const companies = await context.db
.collection('companies')
.findOne()
return companies.companies
},
job: async (_parent, { id }, context) => {
const job = await context.db.collection('jobs').findOne()
return job.jobs.find((job) => job.id === Number(id))
},
},
}
typeDefs.js
export const typeDefs = gql`
type Job {
_id: ID
id: Int
title: String
}
type Company {
_id: ID
id: Int
name: String
}
type Query {
jobs: [Job]
companies: [Company]
job(id: Int): Job
}
`
但不知道如何将这些连接在一起?我使用的是Apollo/GraphQL/MongoDB/NextJS,基本上是
提前感谢您的帮助或指导