Mongo查询更新字段

时间:2013-10-28 05:05:53

标签: codeigniter mongodb

我正在使用带有codeigniter的Mongo库(alex bible),以及我的收藏品

{
  chart:{
         "LL":[
                { "isEnable":true,
                  "userName":"Nishchit Dhanani"
                }
              ]           
        }
}

我想更新 isEnabled = false

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

首先,您的JSON文档中存在错误。您不能在字典中拥有键值。

所以你的JSON应该是这样的:

{
    "_id" : ObjectId("526e0d7ef6eca1c46462dfb7"),  // I added this ID for querying. You do not need it
    "chart" : {
        "LL" : {
            "isEnable" : false,
            "userName" : "Nishchit Dhanani"
        }
    }
}

要做你需要的事,你必须使用$set

db.test.update(
  {"_id" : ObjectId("526e0d7ef6eca1c46462dfb7")},
  {$set : {"chart.LL.isEnable" : false}
})

通过新修改,您需要执行以下操作:

db.test.update(
  {"chart.LL.isEnable" : false},
  {$set : {"chart.LL.$.isEnable" : false}}
)