我正在开发一个使用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
是的,但我可以拉一个特定的数组项吗? –