Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 合并或';参考';并通过GraphQL将对象转换为另一个对象?_Mongodb_Graphql_Apollo - Fatal编程技术网

Mongodb 合并或';参考';并通过GraphQL将对象转换为另一个对象?

Mongodb 合并或';参考';并通过GraphQL将对象转换为另一个对象?,mongodb,graphql,apollo,Mongodb,Graphql,Apollo,对graphQL(和MongoDB)非常陌生,我想知道如何引用graphQL中的另一个对象 我在MongoDB的两个集合中有两个对象 { _id: 1, companies: [ { id: 1, name: 'Google' }, { id: 2, name: 'Apple' } ] } { _id:

对graphQL(和MongoDB)非常陌生,我想知道如何引用graphQL中的另一个对象

我在MongoDB的两个集合中有两个对象

{
    _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,基本上是

提前感谢您的帮助或指导