如何将蒙哥对象转换为棱柱形对象?

时间:2019-06-17 18:27:07

标签: node.js mongodb graphql-js prisma prisma-graphql

我试图使用graphql-yoga和Prisma在GraphQL中编写自定义解析器。

我将数据库连接附加到上下文。当我键入内容时。

await context.db.collection('Offer').find({}).toArray()

我可以看到这样的对象数组:

  { _id: 5d061ffc6344590007407bee,            
    createdAt: 2019-06-16T10:54:52.196Z,
    description: 'Wow. My offer 3!' }

当我键入

await context.prisma.offers({});

我看到这样的物体

{   id: '5d061ffc6344590007407bee',            <- id, not _id
    createdAt: '2019-06-16T10:54:52.196Z'      <- string not DateTime
    description: 'Wow. My offer 3!' }

有非常相似的对象,但是如果我返回pyramida查询的结果作为解析器的响应,则一切正常。但是当我尝试返回mongo的结果时,它不起作用。

有什么方法可以将原始mongodb对象转换为可以在解析器中正确返回的pyramida对象?


我发现解决方法为:

const prismaArray = await Promise.all(mongoArray.map(async offer => await context.prisma.offer({id: offer._id})));

但是我担心此解决方案会发送到数据库mongoArray.length查询,而不是简单地使用mongoArray中可访问的数据来处理它们。

我仍在寻找将mongo db原始对象转换为棱镜对象的简单且最佳的方式。

0 个答案:

没有答案