更新嵌套数组mongoDB PHP

时间:2016-02-16 21:08:48

标签: php arrays mongodb

我实际上有一个问题,mongodb我试图在嵌套数组中更新/添加一个值。

{
    "_id" : ObjectId("56c37e98aff662100900002a"),
    "name" : "michell",
    "game" : [{
        "name" : "GTA",
        "badges" : [{
            "name" : "pacifist"
        }, {
            "name" : "killemall"
        }]
    }]
}

你可以在下面找到我试过的方式,但实际上它只是重写了创建新游戏阵列的徽章数组

 $collection->update(array('_id' =>new MongoId($id),'jeux.name'=>$name), array('$set' => array('jeux'=>array('name' => $name,'badges'=>array('name'=>$badge)))));

如果你能帮助我,我在这里找不到问题

1 个答案:

答案 0 :(得分:0)

我发现了一个解决方案,我不知道它是否是最好的解决方案,但它似乎有效

 $collection->update(array('_id' =>new MongoId($id),'jeux.name'=>$name), array('$push' => array('jeux.$.badges'=>array('name'=>$badge))));

我正在使用$ in jeux。$。徽章