2016-02-16 158 views
0

我實際上有一個mongodb im試圖更新/添加嵌套數組中的值的問題。更新嵌套數組mongoDB PHP

{ 
    "_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))))); 

我不能在這裏找到問題,如果你能幫助我

+0

你有一個錯誤地放置'''在你發佈的對象代碼,我剛剛修復。也許和這有什麼關係? –

回答

0

嗯,我找到了一個解決方案,我不知道,如果它的最好的一個,但它看起來像它的工作

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

即時消息使用$在jeux。徽章