我收藏的內容都是以這種形式,Mongodb/PHP如何在嵌套數組中插入(如果不存在)?
{ "_id" : ObjectId("50535036381ef82c08000002"),"source_references" : [
{
"_id" : ObjectId("50535036381ef82c08000001"),
"name" : "abc",
"key" : "123"
}]
}
現在我要插入的「source_references」另一個數組如果用戶名和密鑰不嵌套數組中存在其他不插。下面是結果我想,
{ "_id" : ObjectId("50535036381ef82c08000002"),"source_references" : [
{
"_id" : ObjectId("50535036381ef82c08000001"),
"name" : "abc",
"key" : "123"
}
{
"_id" : ObjectId("50535036381ef82c08000003"),
"name" : "reuters",
"key" : "139215"
}]
}
這裏是我已經試過:
$Update_tag = array('$addToSet' => array("source_references.$" => array("name" => "reuters", "key" => $r_id)));
$mycollection->update(array("_id" => $id), $Update_tag);
但我不能夠插入嵌套數組內的另一個數組。此外,我只想創建「_id」字段(在嵌套數組內),只需在source_references中插入新數組。
在哪裏,我錯了?希望我清楚我的問題。
您是否收到任何錯誤信息或只是錯誤的結果? –
我沒有收到任何錯誤消息。只是更新不會發生。 @JoachimIsaksson – user1518659
一些事情要先檢查;你在創建數組時會拼寫'soruce_references。$'錯誤,並且在預期結果中有'_id'(路由器和根)的重複。 –