我有简单的文件:
import
无法弄清楚如何编写更新语句以将地址信息 /* 1 */
{
"_id" : "9cbfceec-d6f6-5638-b7c9-49103dc39665",
"Settings" : [
[
"Storage",
"Dedicated"
],
[
"Country",
"EE"
],
[
"Address",
"http://localhost:55557"
],
[
"Number",
"05"
]
]
}
更新为IP地址。像"http://localhost:55557"
这样的东西
答案 0 :(得分:3)
架构设计不正确,因为您没有要更新的值的键。请考虑按以下方式更改架构
{
_id : "9cbfceec-d6f6-5638-b7c9-49103dc39665",
settings :
{
storage:"Dedicated",
country:"EE",
address:"http://localhost:55557",
number:"05"
}
}
上面的模式对于设置中的每个值都有关键,而不是具有双数组。在上述文档中可以访问和编辑任何值。
然后您可以按如下方式更新文档
db.settings.update({
_id: "9cbfceec-d6f6-5638-b7c9-49103dc39665"
}, {
$set: {
"settings.address": "http://10.10.20.2:66667"
}
});
答案 1 :(得分:0)
chirdam
关于架构是正确的。
如果您没有制定新架构的规定,可以尝试以下方法:
尝试此查询:
db.yourCollection.update({"_id" : "9cbfceec-d6f6-5638-b7c9-49103dc39665", "Settings.Address" : "http://localhost:55557"} , { $set : {"Settings.$.Address" : "http://10.10.20.2:66667"}});
或者替代方法是使用RoboMongo
手动编辑您的收藏