如何使用动态密钥附加到字典?

时间:2017-02-01 18:22:14

标签: node.js mongodb

我的示例文档如下所示:

{
    id:"some objid",
    name: "name",
    revision: "rev",
    data:{
         key1 : [
            {
                name: "some name",
                comment: "some comment"
            },
            {
                name: "some name2",
                comment: "some comment"
            }
        ]
    }
}

'key1'将成为我的动态键。查询看起来像这样:

var data={};
data[newKey]=arrayOfObjects;

collection.update({name:"name", revision:"rev"},{$set:{data}},{upsert:true}, function(err, data){
//code here...
}

我原以为以这种方式进行查询会将data.newKey附加到字典中,但它会覆盖整个字典。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

使用dot notation创建带有动态密钥的子文档,例如

var data = {};
data["data."+newKey] = arrayOfObjects;

collection.update(
    { name: "name" },
    { $set: data },
    { upsert: true },
    function (err, data) {
        if (err) throw err;
        console.log(data);
    }
)