更新嵌套对象多个字段

时间:2015-04-02 20:35:16

标签: javascript node.js mongodb

我试图弄清楚如何更新嵌套在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对象更新这些字段而不破坏其他嵌套字段

1 个答案:

答案 0 :(得分:1)

使用dot notation

db.test.update(
  {_id: '...'},
  {$set: {
    'transaction.amount' : 44,
    'transaction.approved' : true,
    'transaction.description': 'new stuff'
  }}
)

如果您想要更新许多内容,请不要忘记multi