我在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)
答案 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);