在MongoDB中搜索和编辑值


Search and edit value in MongoDB

我有一个看起来像这样的MongoDB集合:

[
    {
        "title": "Entry 1",
        "visible": true
    },
    {
        "title": "Entry 2",
        "visible": true
    }
]

我想找到其title与我的查询匹配的条目(例如,array("title" => "Entry 1") ),并更改其visible属性。

这看起来非常简单,但我还没有找到任何方法。我看到如何将我想要的条目作为数组返回。在我看来,我不应该获取整个对象(它的属性比此示例多得多),更改一个小东西,然后再次放置整个对象。我错过了什么?

阅读有关位置运算符的信息

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 } ] }