首页 >web前端 >js教程 >如何从 MongoDB 数组中删除对象?

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

Susan Sarandon
Susan Sarandon原创
2024-11-01 02:29:02363浏览

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

MongoDB:从数组中删除对象

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

考虑以下文档:

<code class="json">{
   _id: 5150a1199fac0e6910000002,
   name: 'some name',
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}</code>

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

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() 方法:

<code class="javascript">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); }
);</code>

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

以上是如何从 MongoDB 数组中删除对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn