1
我有節點是這樣的:
[_id] => MongoId Object (
[$id] => 4e90cb3cd68417740c000017
)
[label] => mystery
[owner] => me
[parents] => Array (
[0] => Array (
[id] => MongoId Object (
[$id] => 4e8c6bb6d68417340e0004ca
)
[owner] => userid
[timestamp] => 1318112522
)
)
[timestamp] => 1318112060
[translabel] => mystery
[type] => 0
我所試圖做的是消除家長ID:4e8c6bb6d68417340e0004ca,無論他們在哪裏。
例如本應該在工作(最新蒙戈):
db.nodes.update({},{$pull : {"parents": { "id" : ObjectId("4e8c6bb6d68417340e0004ca") }}});
在PHP
或equaly(最新的驅動程序等):
$mongodb->nodes->update(array(),array('$pull'=> array('parents'=>array('id'=> new MongoId("4e8c6bb6d68417340e0004ca")))));
都沒有做任何事情!
在另一方面:
db.nodes.update({"_id": ObjectId("4e90cb3cd68417740c000017")},{$pull : {"parents": { "id" : ObjectId("4e8c6bb6d68417340e0004ca") }}});
或equaly在PHP中:
$mongodb->nodes->update(array('_id' => new MongoId("4e90cb3cd68417740c000017"),array('$pull'=> array('parents'=>array('id'=> new MongoId("4e8c6bb6d68417340e0004ca")))));
工作得很好!這是一個錯誤?在我的子文檔中使用「id」而不是「_id」與MongoID對象是否存在問題?預先感謝任何幫助!
感謝您的快速回答!第一個來自Mongo Command和PHP,都是我需要的 - 因爲我只有一個節點和這個父節點 - 請你向我解釋爲什麼我需要多節點?是因爲我有空的搜索條件,並且首先沒有找到該節點 - 因此沒有更新? –
是絕對正確的,因爲你有空搜索條件,並且這個節點不是第一次被發現。 Multi強制mongodb更新爲符合條件的所有文檔。在這種情況下,標準是{}(所有文檔)。你可以接受這個答案,如果有幫助... – RameshVel
非常感謝 - 現在很清楚 - 對於遲到接受答案抱歉 - 這是我的第一個問題:) –