Как выполнить откат в базе данных Mongodb? - PullRequest
0 голосов
/ 13 февраля 2020

У меня 2 последовательных запроса в Mongodb. Например, мой первый запрос - создать устройство , а второй - создать Slave после создания устройства. Иногда устройство может возникать, а Slave - нет. Если Slave не произошел, я хочу отменить операцию устройства. Как выполнить событие rollback в базе данных Mongodb ?

const Device = require("../../models/device");
const Slave = require("../../models/slave");

module.exports = (req, res, next) => {
  const optionDevice = {
    project_id: req.params.project_id.trim(),
    title: req.body.title.trim(),
    label: req.body.label.trim(),
    communication: req.body.communication
  };

  const newDevice = new Device(optionDevice);

  newDevice
    .save()
    .then(device => {
      const newSlave = new Slave({
        device_id: device._id,
        project_id: device.project_id,
        title: "Slave 1",
        slave_id: 1
      });

      newSlave
        .save()
        .then(slave => {
          return res.status(201).json({
            message: i18n.__("general")._201,
            data: device
          });
        })
        .catch(err => {
          return res.status(400).json({
            message: i18n.__("general")._400.transaction,
            error: err
          });
        });
    })
    .catch(err => {
      res.status(500).json({
        message: i18n.__("general")._500,
        error: err
      });
    });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...