我试图弄清楚如何更新嵌套在mongodb文档中的子对象中的字段,似乎没有办法做到这一点。这就是我所拥有的。
这是一个对象。我想更新字段说明,金额和已批准的属性
{
"_id": "...",
"transaction": {
"amount": 1,
"description": "Birthday Money",
"approved": false,
"child_id": "...",
"user_id": "...",
"_id": "..."
}
}
我已经使用$ set尝试了几乎所有内容,但大多数事情都会覆盖事务对象中的所有字段,除了更新的字段或设置到主文档(外部事务)。
我有一个对象 data = {amount:11,description:" new desc",approved:true}
如何使用$ set update对象更新这些字段而不破坏其他嵌套字段
答案 0 :(得分:1)
使用dot notation:
db.test.update(
{_id: '...'},
{$set: {
'transaction.amount' : 44,
'transaction.approved' : true,
'transaction.description': 'new stuff'
}}
)
如果您想要更新许多内容,请不要忘记multi
。