当前位置: 首页 > 面试题库 >

MongoDB,从数组中删除对象

张卓
2023-03-14
问题内容

文件:

{
   _id: 5150a1199fac0e6910000002,
   name: 'some name,
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}

有没有办法从数组中提取特定对象?IE如何从项数组中提取ID为23的整个项对象。

我努力了:

db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});

但是我很确定我没有正确使用’pull’。据我了解,pull将从数组中拉出字段,而不是对象。

关于如何将整个对象从数组中拉出的任何想法。

另外,我尝试在mongoose / nodejs中执行此操作,也不确定这种类型的内容是否在mongoose API中,但我找不到它。


问题答案:

尝试..

db.mycollection.update(
    {'_id': ObjectId("5150a1199fac0e6910000002")}, 
    { $pull: { "items" : { id: 23 } } },
false,
true 
);


 类似资料:
  • 我是mongoDB新手,在使用Mongoose从mongoDB中的数组中删除团队对象时遇到困难。我的用户收藏看起来像; 我的移除路线看起来像; 控制台在用户之前和之后记录日志。更新是完全相同的,我没有得到任何错误抛出。控制台的输出。日志(错误、数据)最终被删除 我不知道该怎么解释。我也尝试过不按这里的建议传入userID;https://stackoverflow.com/a/24289161/5

  • 问题内容: 我需要从满足条件的数组中删除对象,我可以根据条件更新数组的对象,如下所示: 这正在工作 为了删除我正在这样做 但这不起作用,并给出此错误, ElasticsearchIllegalArgumentException [无法执行脚本]; 嵌套:ConcurrentModificationException; 错误:ElasticsearchIllegalArgumentException

  • 在mongodb中,我有一个集合,其中数组有重复的条目,如 我需要删除重复的数组,只保留唯一的数组值,如下所示。 最好的方法是什么 谢啦

  • 我有一个叫酒吧的收藏。每个文档都包含一个名为cocktails的字符串数组,以便: 使用Spring mongodb,我将删除每个“sexontheBeach”,以便: 泰提前。

  • 我的mongo数据库中有: 我想从这个数组中删除on元素。我用的是golang和mgo。v2驱动程序,下面是我的代码: 它继续成功,但不删除项目时,我检查mongob。有人能告诉我我做错了什么吗?谢谢你们

  • 文件: 我想从“数组”项中删除一个项,而不知道文档的_id,只知道元素的id,我有一个查找元素的查询,它在mongodb shell中工作,但在mongoose中不工作, 你知道为什么吗? 你能给我同等的猫鼬吗? 我应该如何从列表中提取该项,而只知道它的_id?