У меня есть коллекция с документами этой схемы:
{
_id: something,
recipients: [{id:1, name:"Andrey", isread:false}, {id:2, name:"John", isread:false}]
}
Теперь я хочу обновить «isread» для Джона (id = 2), используя findAndModify()
, потому что мне также нужно получитьоригинальный документ.
Я пытаюсь выполнить эту команду:
db.messages.findAndModify({query:{'recipients.id':2}, update:{'recipients.$.isread':true}})
, но для этого она просто заменяет целое поле «Получатели» на «Получатели. $. isread», поэтомуТеперь документ выглядит так:
{
_id: someid,
'recipients.$.isread':true
}
Что я делаю не так?