Как преобразовать объект монго в объект призмы? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь написать собственный распознаватель в GraphQL, используя graphql-yoga и Prisma.

Я добавляю соединение с базой данных в контекст. Когда я печатаю.

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!' }

Есть довольно похожие объекты, но если я верну результат запроса призмы в качестве ответа от распознавателя, все будет в порядке. Но когда я пытаюсь вернуть результат Монго, он не работает.

Можно ли каким-либо образом преобразовать необработанный объект mongodb в объект призмы, который можно правильно вернуть в распознаватель?


Я нашел обходной путь как:

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

но я боюсь, что это решение отправляет в базу данных mongoArray.length запросы вместо того, чтобы просто использовать данные, доступные в mongoArray, и обрабатывать их.

Я все еще ищу простой и оптимальный способ преобразования необработанных объектов mongo db в объекты призмы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...