我在mongodb中有一个简单的结构,带有嵌套数组。如何更新搜索值?我见过使用数字的例子,如下所示:
invited.0.used: true
但这不是我要搜索的,因为我不知道这个元素在我的列表中的位置,所以我如何将 TRUE 的数组更新为 true 键在哪里84026702?如果我在邀请中有 100 个数组,如何更新密钥43938432的位置怎么办?
{
"_id" : ObjectId("4fed972f61d69aa004000000"),
"name" : "mezo",
"invited" : [
{
"key" : 40928710,
"used" : false
},
{
"key" : 84026702,
"used" : false
}
]
}
update({ invited.key : 84026702 }, { invited.$.used : true });
这基本上可以满足您的需求,并且应该可以很好地工作。查看 mongodb 中的位置运算符:http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator
或者在PHP中(当你的问题被标记时),你可以做:
$mongo->collection->update(array('invited.key' => 84026702), array('invited.$.used' => true));