Php Mongo嵌套对象数组更新

Php Mongo嵌套对象数组更新,php,mongodb,Php,Mongodb,我正在尝试更新文档中的值,但我还没有看到一个示例来说明我需要做什么。以下是我的文档的外观: { "_id" : ObjectId("5429e8a53150d03d541c7a53"), "foo" : { "bar" : { "0" : { "email" : { "0" : "bob@aol.com" } }

我正在尝试更新文档中的值,但我还没有看到一个示例来说明我需要做什么。以下是我的文档的外观:

{
    "_id" : ObjectId("5429e8a53150d03d541c7a53"),
    "foo" : {
        "bar" : {
            "0" : {
                "email" : {
                    "0" : "bob@aol.com"
                }
            }
        }
    }
}
这当然不是我真正的对象,但代表了结构。如何更新bob@aol.com成为whatever@whocares.net?

另外,如何删除相同的元素


另外,对于布努斯的观点,我将如何使用php Mongo类更新它?

好的,我已经找到了答案。以下是您在控制台中执行此操作的方式:

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);

我希望这对其他人有所帮助,因为我花了好几个小时才弄明白这一点。

您是否使用任何类型的PHP库与返回的mongo json对象进行交互?我正在使用的应用程序使用了以下内容:我知道它已被弃用,但我假设应用程序的其余部分也依赖于它,因此更改它并不一定容易。有人试图围绕这个类编写一个包装器,但效果不是很好,所以我宁愿避免它。仅供参考,这是我第一次尝试,但没有成功:db.test.update{foo.bar.0:email},{$set:{0:whatever@whocares.net}};