javascript - MongoDB,从数组中删除对象

文档:

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

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

我试过了:

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

但是我很确定我没有正确使用“拉”。据我了解,pull 将从数组中提取一个字段,而不是从对象中提取一个字段。

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

作为奖励,我正在尝试在 mongoose/nodejs 中执行此操作,也不确定这种类型的东西是否在 mongoose API 中,但我找不到它。

最佳答案

试试..

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

https://stackoverflow.com/questions/15641492/

相关文章:

node.js - 记录所有在应用程序中触发的 mongoose 查询

javascript - 何时在 Nodejs 中关闭 MongoDB 数据库连接

mongodb - MongoDB的优点和缺点?

node.js - 无法连接到 127.0.0.1 :27017, 原因:errno:111 连接被

javascript - MongoDB选择_id数组的位置?

node.js - 在 node.js 中模拟数据库?

linux - MongoDB 数据目录/data/db 未找到

linux - 为什么在 Linux 上出现错误 mongod dead 但 subsys 被锁定和

mongodb - 如何从 MongoDB shell 连接到副本集?

ruby-on-rails - 安装 Mongoid 后使用 Active Record 生成器?