Mongo 数据库更新语句
Mongo db update statement
我有简单的文档:
/* 1 */
{
"_id" : "9cbfceec-d6f6-5638-b7c9-49103dc39665",
"Settings" : [
[
"Storage",
"Dedicated"
],
[
"Country",
"EE"
],
[
"Address",
"http://localhost:55557"
],
[
"Number",
"05"
]
]
}
不知道如何编写更新语句来将地址信息 "http://localhost:55557"
更新为 IP address.something,如 http://10.10.20.2:66667
架构设计不正确,因为您要更新的值没有键。考虑如下更改架构
{
_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"
}
});
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
手动编辑您的 collection
我有简单的文档:
/* 1 */
{
"_id" : "9cbfceec-d6f6-5638-b7c9-49103dc39665",
"Settings" : [
[
"Storage",
"Dedicated"
],
[
"Country",
"EE"
],
[
"Address",
"http://localhost:55557"
],
[
"Number",
"05"
]
]
}
不知道如何编写更新语句来将地址信息 "http://localhost:55557"
更新为 IP address.something,如 http://10.10.20.2:66667
架构设计不正确,因为您要更新的值没有键。考虑如下更改架构
{
_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"
}
});
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
手动编辑您的 collection