我的示例文档如下所示:
{
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附加到字典中,但它会覆盖整个字典。任何帮助将不胜感激,谢谢。
答案 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);
}
)