0

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

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

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

这似乎非常简单,但我还没有找到任何方法来做到这一点。我看到了如何将我想要的条目作为数组返回。在我看来,我不应该获取整个对象(它比这个例子有更多的属性),改变一件小事,然后再把整个对象放回去。我错过了什么?

4

1 回答 1

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 } ] }
于 2012-06-18T23:15:27.983 回答