gpt4 book ai didi

mongodb - 字段名称中未捕获的异常 : can't have .

转载 作者:IT老高 更新时间:2023-10-28 13:20:34 26 4
gpt4 key购买 nike

我正在尝试更新 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"}] });
});

我收到以下错误:

uncaught exception: can't have . in field names [fields.shop]

我了解这个问题,但我找不到解决方案,所以如果我能得到任何帮助,我将不胜感激。

最佳答案

如果您的字段子文档中没有任何内容,您可以使用 $set 执行此操作,如果您的文档中除了 fields 字段之外还有其他任何内容,则无论如何都应该使用它。

db.members_copy.update(
{ "_id": myDoc._id},
{ "$set": { "fields.shop": [{"id": 319, "value": "Los Angeles"}] } }
);

但是您不能做的是在不替换整个内容的情况下将项目添加到子文档。因此,如果您想在现有 bar 的位置添加 shop,则需要这样做

db.members_copy.update(
{ "_id": myDoc._id},
{ "$set": {
"fields": {
"bar": "foo",
"shop": [{"id": 319, "value": "Los Angeles"}]
}
}
);

以这种方式使用子文档很危险。

关于mongodb - 字段名称中未捕获的异常 : can't have .,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22192197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com