MongoDB - агрегация - обновление после поиска и совпадения - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть модель Продукт и модель Событие . С каждым продуктом связано событие , а у каждого событие есть дата. Также у каждого продукта есть виртуальное свойство, которое называется доступность

Мне нужно установить готовность в значение false, если дата ввода совпадает с датой в событии.

Пока что у меня есть фильтр для всех продуктов, которые соответствуют заданной дате, вот так:

exports.checkDateAvailability = function (req, res) {
  const dateAvailability = moment(req.query.dateAvailability).format("DD-MM-YYYY")

  Product.aggregate([
    {
      $lookup: { from: Event.collection.name, localField: 'event', foreignField: '_id', as: 'event' }
    },
    {
      $unwind: '$event',
    },
    {
      $addFields: { date: { $dateToString: { date: '$event.date', format: "%d-%m-%Y" } } }
    },
    {
      $match: { date: dateAvailability },
    },

  ]).then(response => { res.send(response) })
}

Теперь я хочу обновить свойство доступности этих продуктов до false. Я знаю, что из версии 4.2 доступна команда обновления , но я не смог реализовать ее после $ match. Есть идеи, как мне поступить?

...