node.js mongoose更新文档中的特定值

时间:2014-01-26 14:20:49

标签: node.js mongodb mongoose

我有一份如下文件:

{
    "_id" : ObjectId("52e51809454115b7c5d593a4"),
    "usage" : {
        "from" : "2013-12-02T00:00:00+01:00",
        "to" : "2014-02-02T00:00:00+01:00",
        "used" : 674999999,
        "total" : NumberLong(4000000000)
    },
        "refills" : [ 
        {
            "id" : "RXh0cmEgU3VyZnZvbHlt",
            "amount" : 1000000000,
            "fee" : "5520",
            "feeVat" : "6900",
            "validTo" : "2014-02-02T00:00:00+01:00"
        }
    ],
}

我想在“使用情况”中更新“总数”的值,并在“重新填充”中添加“金额”值 所有其他值应该相同。

我如何做到最好?

1 个答案:

答案 0 :(得分:0)

假设refillsobject而不是array,例如:

coll.find( ..., function( err, result) {
    ...
    coll.update( ..., { $set: { 'refills.amount': ... } }, function( err,result ) {
        ...
    });
});

因此,您首先必须阅读特定文档以获取total的值,然后更新字段refills.amount。您可以使用$set$inc,具体取决于您要更新的方式。

编辑:

如果refillsarray,那就不一样了。请参阅here