我有一个包含此架构文档的集合:
{
_id: something,
recipients: [{id:1, name:"Andrey", isread:false}, {id:2, name:"John", isread:false}]
}
Run Code Online (Sandbox Code Playgroud)
现在,我想使用更新John(id = 2)的"isread" findAndModify(),因为我还需要获取原始文档.
我正在尝试这个命令:
db.messages.findAndModify({query:{'recipients.id':2}, update:{'recipients.$.isread':true}})
Run Code Online (Sandbox Code Playgroud)
但它做了什么,它只是用'recipients. $ .isread'替换整个"收件人"字段,所以文档现在看起来像:
{
_id: someid,
'recipients.$.isread':true
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
尝试使用这样的$ set:
db.messages.findAndModify({query:{'recipients.id':2}, update:{$set:{'recipients.$.isread':true}}})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2902 次 |
| 最近记录: |