我有一个看起来像这样的MongoDB集合:
[
{
"title": "Entry 1",
"visible": true
},
{
"title": "Entry 2",
"visible": true
}
]
我想找到title
与我的查询匹配的条目(例如array("title" => "Entry 1")
),并更改其visible
属性。
这看起来非常简单,但我还没有找到任何办法。我看到如何将我想要的条目作为数组返回。在我看来,我不应该获取整个对象(它具有比这个例子更多的属性),改变一个小东西,然后再次放置整个对象。我错过了什么?
答案 0 :(得分:1)
db.pos.insert({arr: [{"title": "Entry 1", "visible": true},
{"title": "Entry 2", "visible": true}]})
db.pos.update({'arr.title': 'Entry 1'},
{$set: {'arr.$.visible': false}})
db.pos.find()
> { "_id" : ObjectId("4fdfb65e9c9cf2c23bbdd669"), "arr" : [ { "title" : "Entry 1", "visible" : false }, { "title" : "Entry 2", "visible" : true } ] }