”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何从 MongoDB 数组中删除对象?

如何从 MongoDB 数组中删除对象?

发布于2024-11-19
浏览:301

How do I remove an object from an array in MongoDB?

MongoDB:从数组中删除对象

在 MongoDB 中,您可以使用 $ 从嵌入在文档中的数组中删除对象拉操作员。如果您希望从数组中删除特定对象,则需要提供与确切对象匹配的查询。

考虑以下文档:

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

要从 items 数组中删除 id 为 23 的项目,请使用以下命令:

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

此命令通过从数组中删除项目来更新文档。该查询使用 _id 字段指定文档,$pull 运算符的目标是 items 数组。在 $pull 操作中,您可以指定一个查询来匹配要删除的对象。在本例中,我们将对象与 id 进行匹配: 23.

Mongoose/Node.js 实现

在 Mongoose 中,您可以使用以下方法从数组中删除对象: pull() 方法:

const Model = mongoose.model('Model', new mongoose.Schema({
  items: [{
    id: Number,
    name: String
  }]
}));

Model.update(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }, // Update all matching documents
  (err, result) => { if (!err) console.log(result); }
);

此代码将从与指定 _id 匹配的所有文档的 items 数组中删除 id 为 23 的项目。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3