我正在使用mongodb
库codeigniter.i
想要从嵌入式文档中删除元素。我的收藏如下 -
{
"_id" : ObjectId("56503a272f170d30298b45ad"),
"gm_creation_time" : "2015-11-21 09:32:23",
"gm_favourites" : [
{
"gm_user_id" : "55f90ccf2f170d79048b4570",
"gm_id" : "56503a272f170d30298b45ad",
"date" : "2015-11-21 09:32:40"
}
],
"gm_members" : [
"560391de2f170d1e108b4574",
"55f90ccf2f170d79048b4570"
],
"gm_name" : "Sunny@ccs",
"gm_owner" : "55f90ccf2f170d79048b4570",
"gm_photo" : null,
"gm_posts" : [ ],
"gm_type" : "1",
"gm_updation_time" : "2015-11-21 09:32:40"
}
如何根据gm_user_id从收藏夹中删除。我是codeigniter + mongodb的新手。请帮忙
答案 0 :(得分:3)
使用 $pull
数组修饰符运算符从现有数组中删除与指定条件匹配的值的所有实例。
以下mongo操作更新集合中的所有文档,以从数组"gm_user_id"
中删除值为"55f90ccf2f170d79048b4570"
的{{1}}属性的对象:
gm_favourites
这将转换为PHP,如下所示:
db.collection.update(
{ },
{
"$pull": {
"gm_favourites": {
"gm_user_id": "55f90ccf2f170d79048b4570"
}
}
},
{ "multi": true }
);
答案 1 :(得分:1)
如果要基于for
删除嵌入的文档,请使用以下命令。 (假设集合名称是收藏夹):
db.test.update({},{$ pull:{'gm_favourites':{'gm_user_id':'55f90ccf2f170d79048b4570'}}})
上述命令将删除匹配的嵌入文档。