Мой вариант использования:
=> ОБНОВЛЕНИЕ: установить текущую дату, если я нашел конкретное письмо (работает)
=> INSERT: конкретное письмо с нулевой датой, если сообщение, переданное в запросе, не найдено (не работает)
Я думал, что upsert должны были быть вставлены, если конкретное письмо не было найдено, но по какой-то причине это не так.
Структура JSON
"listener": [
{
"email": "email",
"date": "2019-06-23T00:22:52.190Z"
}
],
Маршрут
exports.add_listener = function (req, res) {
Playlist.findOneAndUpdate(
{"platform.strauss": req.body.url},
{$set: {"listener.$[elem].date": new Date()}},
{
arrayFilters: [{"elem.email": req.body.email}],
upsert:true,
new:true,
}, function (err, data) {
err ? console.error(err) : res.status(200).send(data);
}
)
};