Mongoclient:如何设置嵌入文档的值

时间:2015-04-16 21:01:00

标签: node.js mongodb

我在nodejs中使用MongoClient。我想更新特定的嵌入式文档值,但我不知道如何做到这一点。 在mongo shell中,它的工作方式类似于{$set{doc.doc : "test"}}

的魅力

但是当我尝试在节点中以完全相同的方式使用它时,它会给我一个错误,即点不是不可靠的。

我已经尝试过它作为一个字符串,它也不起作用。

有人为这个问题找到了解决方案吗?

编辑: Mongodb中的Json doc:

{
  name : test,
  doc : {},
}

我希望将以下键值对添加到' doc' -document test:test

相关代码部分(我认为它应该如何工作)

db.collection("test").update({name:test},{$set:{doc.test:test}}, callback)

1 个答案:

答案 0 :(得分:1)

您可以尝试使用数组语法样式在变量中设置更新对象,例如:

var update = { $set: {} };
update["$set"]["doc"]["test"] = "test"; // -> same as update = {"$set": {"doc": {"test": "test" } } }
var query = {"name": "test"};
db.collection("test").update(query, update, callback);