【问题标题】:MongoDB update nested arrayMongoDB 更新嵌套数组
【发布时间】:2012-06-29 12:09:43
【问题描述】:

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

invited.0.used: true

但这不是我要搜索的内容,因为我不知道这个元素在我的列表中的哪个位置,所以我如何将用于 true 的数组更新为 key 为 84026702 的位置?如果我有 100 个数组被邀请如何更新 key 为 43938432 的位置?

{
    "_id" : ObjectId("4fed972f61d69aa004000000"),
    "name" : "mezo",
    "invited" : [
            {
                    "key" : 40928710,
                    "used" : false
            },
            {
                    "key" : 84026702,
                    "used" : false
            }
    ]
}

【问题讨论】:

    标签: php javascript mongodb


    【解决方案1】:
    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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2017-09-11
      • 2019-12-07
      • 1970-01-01
      • 2018-10-22
      • 2019-06-08
      相关资源
      最近更新 更多