MongoDB 更新嵌套数组

2023-12-01

我在 mongodb 中有一个简单的结构,带有嵌套数组。如何更新搜索值? 我见过使用数字的示例,如下所示:

invited.0.used: true

但这不是我要搜索的内容,因为我不知道这个元素在列表中的哪个位置,所以如何将 key 为 84026702 的数组更新为 true ?如果我邀请了 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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 更新嵌套数组 的相关文章