gpt4 book ai didi

mongodb - 从mongodb中的嵌入式文档中删除元素

转载 作者:可可西里 更新时间:2023-11-01 10:00:34 26 4
gpt4 key购买 nike

我正在为 codeigniter.i 使用 mongodb 库,想从嵌入式文档中删除元素。我的收藏如下-

{
"_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 的新手。请帮忙

最佳答案

使用 $pull 数组修饰符运算符,用于从现有数组中删除一个或多个与指定条件匹配的值的所有实例。

以下 mongo 操作更新集合中的所有文档,以从数组 中删除具有 "gm_user_id" 属性且值为 "55f90ccf2f170d79048b4570" 的对象gm_favourites:

db.collection.update(
{ },
{
"$pull": {
"gm_favourites": {
"gm_user_id": "55f90ccf2f170d79048b4570"
}
}
},
{ "multi": true }
);

这将按如下方式转换为 PHP:

$connection = new Mongo();
$db = $connection->selectDB('dbname');
$collection = $db->selectCollection('collection_name');

$filter = array();
$remove_document = array(
'$pull' => array(
'gm_favourites' => array(
'gm_user_id' => '55f90ccf2f170d79048b4570',
)
)
);
$options['multiple'] = true;

$collection->update($filter, $remove_document, $options);

关于mongodb - 从mongodb中的嵌入式文档中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33842053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com