В коллекции продуктов у меня есть массив недавних просмотров, в котором есть 2 поля, которые смотрелиBy и смотрелиDate.
В сценарии, если у меня уже есть запись с viewedby
, мне нужно ее обновить. Например, например, если у меня есть массив: -
"recentviews" : [
{
"viewedby" : "abc",
"vieweddate" : ISODate("2014-05-08T04:12:47.907Z")
}
]
И пользователь abc
, поэтому мне нужно обновить выше, а если нет записи для abc
, я должен $push
.
Я пробовал $set
следующим образом: -
db.products.update( { _id: ObjectId("536c55bf9c8fb24c21000095") },
{ $set:
{ "recentviews":
{
viewedby: 'abc',
vieweddate: ISODate("2014-05-09T04:12:47.907Z")
}
}
}
)
Вышеуказанный запрос уничтожает все мои другие элементы в массиве.