Транзакции Mongoose: как получить результаты одной операции для использования в другой? - PullRequest
0 голосов
/ 21 февраля 2019

MongoDB 4.0 поддерживает транзакции, а Mongoose предлагает реализацию начиная с версии 5.12.В моем конкретном сценарии использования я разрабатываю схемы для простого блогового приложения с 2 коллекциями: Authors и Posts:

Авторы

_id: ID!
firstName: String!
lastName: String!
posts: [Posts]

Сообщений

_id: ID!
title: String!
content: String!
author: { _id: ID!, firstName: String!, lastName: String! }

Вот очень упрощенный процесс при создании нового сообщения:

  1. Сохранение данных сообщения (_id, title, content, author{_id, firstName, lastName}) до Posts коллекции.
  2. Извлечение _id, автоматически сгенерированного для вставки в шаге 1.
  3. Обновление Authors коллекциис _id, полученным на шаге 2 для его поля posts[].

Эти две операции, конечно, должны быть транзакционными.Итак, если шаг 1 не пройден, то должен шаг 3 , и наоборот.Тем не менее, моя задача - шаг 2 .Как извлечь значение автоматически сгенерированного поля _id из одной операции для использования в другой в настройке транзакции?Извините, если этот вопрос уже был задан или имеет супер простое решение, которое каким-то образом ускользает от меня.Любой толчок в правильном направлении?

Используя сторонний плагин fawn , я легко могу сделать что-то вроде authors.posts[n]._id: {$ojFuture: "0._id"}.Есть ли альтернатива этому, используя только мангуст?Причина, по которой я ищу альтернативы, заключается в том, что fawn, похоже, не поддерживается активно, поскольку MongoDB отказался от ACID-совместимой версии 4.0, и в последнее время выдает кучу предупреждений об устаревании.

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