Rep*_*pox 7 mongodb mongodb-query
我正在尝试更新members_copy集合中的一组文档.
db.members_copy.find({"fields.shop.id": 321}).forEach(function(myDoc) {
db.members_copy.update({ "_id": myDoc._id}, { "fields.shop": [{"id": 319, "value": "Los Angeles"}] });
});
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
uncaught exception: can't have . in field names [fields.shop]
Run Code Online (Sandbox Code Playgroud)
我理解这个问题,但我找不到解决方案,所以我很感激我能得到的任何帮助.
Nei*_*unn 10
如果您的字段子文档中没有任何内容,则可以使用$ set执行此操作,如果除了fields文档中的字段之外还有其他内容,则应该使用$ set.
db.members_copy.update(
{ "_id": myDoc._id},
{ "$set": { "fields.shop": [{"id": 319, "value": "Los Angeles"}] } }
);
Run Code Online (Sandbox Code Playgroud)
但是你不能做的是将项目添加到子文档而不替换整个文档.因此,如果您想添加shop存在的位置,则bar需要执行此操作
db.members_copy.update(
{ "_id": myDoc._id},
{ "$set": {
"fields": {
"bar": "foo",
"shop": [{"id": 319, "value": "Los Angeles"}]
}
}
);
Run Code Online (Sandbox Code Playgroud)
以这种方式使用子文档只是一种危险.
| 归档时间: |
|
| 查看次数: |
6059 次 |
| 最近记录: |