📅  最后修改于: 2023-12-03 15:32:57.135000             🧑  作者: Mango
在 MongoDB 中,可以将多个对象存储在一个数组中。每个对象也可以有自己的属性。
本文将介绍如何在 MongoDB 中设置数组中的对象属性。
db.collection.update(
{ <query> },
{ $set: { "<array>.$[<identifier>].<field>": <value> } },
{ arrayFilters: [ { <identifier>: <condition> } ] }
)
假设我们有以下文档:
{
"_id" : ObjectId("5f7e28767d80629a3f10d67c"),
"name" : "John",
"hobbies" : [
{
"name" : "reading",
"level" : "beginner"
},
{
"name" : "swimming",
"level" : "advanced"
}
]
}
要将 "name" 为 "reading" 的爱好的 "level" 更改为 "intermediate",请使用以下代码:
db.collection.update(
{ "name": "John" },
{ $set: { "hobbies.$[element].level": "intermediate" } },
{ arrayFilters: [ { "element.name": "reading" } ] }
)
更新后的文档如下:
{
"_id" : ObjectId("5f7e28767d80629a3f10d67c"),
"name" : "John",
"hobbies" : [
{
"name" : "reading",
"level" : "intermediate"
},
{
"name" : "swimming",
"level" : "advanced"
}
]
}
上述代码使用了数组过滤器,过滤器筛选出了名称为 "reading" 的对象。这个对象的 "level" 属性被更改为 "intermediate"。
更多关于 MongoDB 的信息,请访问 MongoDB官方网站。