我正在開發一個使用Codeigniter和Alex Bilbies MongoDB庫的Web應用程序。 每個用戶都得到一個文檔,其中包含一個名爲「電話」的項目,其中包含一組電話號碼。如何從選定的用戶文檔中將數據從數組中取出?MongoDB從所選文檔的數組中刪除項目
感謝您的幫助!
我正在開發一個使用Codeigniter和Alex Bilbies MongoDB庫的Web應用程序。 每個用戶都得到一個文檔,其中包含一個名爲「電話」的項目,其中包含一組電話號碼。如何從選定的用戶文檔中將數據從數組中取出?MongoDB從所選文檔的數組中刪除項目
感謝您的幫助!
使用MongoDB的$拉從數組刪除特定數組項:
> db.mycollection.insert({user: "test", items: [1234, 5678, 91011]});
> db.mycollection.find()
{ "_id" : ObjectId("4ec3b9af8d1ae67f1fb2b30a"), "user" : "test", "items" : [ 1234, 5678, 91011 ] }
> db.mycollection.update({user: "test"}, {$pull: {items: 5678}});
> db.mycollection.find()
{ "_id" : ObjectId("4ec3b9af8d1ae67f1fb2b30a"), "items" : [ 1234, 91011 ], "user" : "test" }
不錯。但是,我怎樣才能從一個特定的文件數組? –
我需要使用Alex Bilbies MongoDB庫才能使用它。 –
當然,使用修飾符操作符時,您不需要指定整個文檔,只需指定條件並指定需要修改的字段。在PHP方面,這看起來像:$ coll-> update(array('username'=>'jamesbond',array('$ pull'=> array('items'=> 5678))); – ioseb
即使我遇到了時,直接試圖拉使用亞歷Bilbies的MongoDB庫中的數組值的問題。 這種方法適用於我,首先取消設置值,然後拉出所有空值。
希望這有助於
$this->mongo_db->where('items', "5678")->unset_field('items.$')->update('mycollection');
$this->mongo_db->pull('items', NULL)->update('mycollection');
蒙戈已經支持$拉出箱子: http://www.mongodb.org/display/DOCS/Updating#Updating-%24pull – ioseb
是的,但我可以拉一個特定的數組項嗎? –