我有这个文件:
{ "data" : "AP1IUY9Bfp", "me" : { "something" : "somevalue" } }
我有这个对象:
webpage: 'stackoverflow'
我如何 $push/$set 这个字段到 document.me 中,这样最终结果将等于:
{ "data" : "AP1IUY9Bfp", "me" : { "something" : "somevalue", "webpage": "stackoverflow" } }
如果我尝试使用$set
, 像这样:
db.collection('doc').update({id: 'AP1IUY9Bfp'}, {'$set': {'me': webpage: 'stackoverflow'}}
结果等于:
{ "data" : "AP1IUY9Bfp", "me" : { "webpage" : "stackoverflow" } }
(它覆盖该字段)
Thanks!
你想要做的是这样的:
{'$set': {'me.webpage': 'stackoverflow'} }
请注意,唯一的区别是我使用点符号来指向子文档。
将其视为 Mongo 之外的普通 JSON 对象。您可以使用点表示法来访问对象的属性 - mongo 的工作方式相同。
这是有关 mongo 中子文档和点符号的相关文档的链接 -http://docs.mongodb.org/manual/core/document/#dot-notation
点符号
MongoDB 使用点表示法来访问数组的元素和子文档的字段。
...
要使用点符号访问子文档的字段,请连接
子文档名称带有点 (.) 和字段名称,并括在
引号:
'<subdocument>.<field>'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)