MongoDB + Rest API: во время POST / PUT проверьте, изменилось ли данное поле, и если да, внесите изменения во вторую коллекцию - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть REST API, который обновляет базу данных MongoDB.

Вот моя модель данных:

Коллекция 1: случаи:

_id: ObjectID

caseNumber: Строка

person: people.ObjectID

Коллекция 2: человек:

_id: ObjectID

name: String

вовлеченных случаев: [case.ObjectID]

Я хочу запросы POST / PUT для случаев чтобы проверить, было ли изменено case.person , и, если так, нажмите case._id в массив people.involvedCases .

Thisбыла моей лучшей попыткой, но не работает:

.put('/:id', async (req, res, next) => {
const note = await Cases.findByIdAndUpdate(req.params.id, { $set: req.body }, { $upsert: true, new: true })
if (req.body.person.isModified()) {
  await People.findByIdAndUpdate(req.body.person,
    { $push: {involvedCases: req.params.id }})
}
res.status(200).send(note)

})

Возвращает ошибку

req.body.person.isModified is notфункция

Я на правильном пути?Было бы лучше обрабатывать обновление коллекции People как отдельный вызов API, а не пытаться обрабатывать его из контроллера Cases?

Любая помощь или совет с благодарностью!

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