我在mongo中有这个文件:
{
id: objectId,
list: [
{
id: internalObjectId1,
enabled: true
},
{
id: internalObjectId2,
enabled: false
}]
}
我需要更改启用的字段。我该怎么办?
答案 0 :(得分:1)
使用 positional $ operator 。假设您的集合中有以下文档,其list
元素值是嵌入文档的数组:
{
"_id" : ObjectId("551be1a04db8a16ac729432e"),
"list" : [
{
"id" : ObjectId("54f43159c922ac0b4387ef9c"),
"enabled" : true
},
{
"id" : ObjectId("54f43159c922ac0b4387ef9d"),
"enabled" : false
}
]
}
以下内容将更新嵌入文档中enabled
字段的值id
54f43159c922ac0b4387ef9d
至true
:
db.collection.update(
{
"_id": ObjectId("551be1a04db8a16ac729432e"),
"list.id": ObjectId("54f43159c922ac0b4387ef9d")
},
{
"$set": {"list.$.enabled": true}
}
)