使用mongoDb + nodeJs更新嵌套文档

时间:2012-08-02 18:19:56

标签: node.js mongodb

我有这样的结构:

{
    "_id" : ObjectId("501abaa341021dc3a1d0c70c"),
    "name" : "prova",
    "idDj" : "1",
    "list" : [
        {
            "id" : 1,
            "votes" : 2
        },
        {
            "id" : 2,
            "votes" : 4
        }
    ]
}

我正在尝试通过此查询增加投票:

session_collection.update(
 {'_id':session_collection.db.bson_serializer.ObjectID.createFromHexString(idSession),'list.id':idSong},
 {$inc:{'list.$.votes':1}},
 {safe: true} ,
 callback);

但它不起作用,没有问题它只是不更新​​任何东西。

我认为这是因为'list.id'和'list。$。votes'上的['](简单引号),因为终端内的相同查询工作正常。

谢谢!

1 个答案:

答案 0 :(得分:0)

我怀疑你的匹配没有按预期工作。回调将返回

function(err,numberofItemsUpdated,wholeUpdateObject)

如果您的匹配工作,则numberofItemsUpdated应该等于1。你需要检查idSession和idSong是否符合你的想法。