Mongo嵌套对象数组更新

时间:2014-10-01 17:14:24

标签: php mongodb

我试图更新文档中的值,但我还没有看到一个示例,它向我展示了我需要做什么。以下是我的文档的外观:

{
    "_id" : ObjectId("5429e8a53150d03d541c7a53"),
    "foo" : {
        "bar" : {
            "0" : {
                "email" : {
                    "0" : "bob@aol.com"
                }
            }
        }
    }
}

这当然不是我的真实目标,而是代表了结构。我如何将bob@aol.com更新为whatever@whocares.net?

另外我如何删除这个相同的元素?

另外(对于bunus积分)我将如何使用php Mongo类更新此内容?

1 个答案:

答案 0 :(得分:0)

好的,我想通了。这是您在控制台中执行此操作的方式:

db.test.update({"foo.bar.0.email" : {"0":"bob@aol.com"} },{$set:{"foo.bar.0.email.0":"whatever@whocares.net"}});

这就是你在PHP中使用Mongo类

的方法
$db = new Mongo("connection stuff");

$condition = array('foo.bar.0.email' => array('0' => 'bob@aol.com'));
$data = array('$set' => array('foo.bar.0.email.0' => 'whatever@whocares.net'));

$db->test->update($condition, $data);

我希望这对某人有所帮助,因为我花了几个小时来解决这个问题。