首页  >  文章  >  web前端  >  如何从 MongoDB 数组中删除特定对象?

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

DDD
DDD原创
2024-11-02 07:26:29997浏览

How to Remove a Specific Object from an Array in MongoDB?

MongoDB:从数组中删除对象

问题:

在 MongoDB 中,如何提取特定对象来自嵌入文档中的数组?在示例文档中,我们想要从 items 数组中删除 id 为 23 的对象。

解决方案:

要实现此目的,请使用 $pull 运算符更具体的查询,以匹配数组中所需的对象。

MongoDB 查询:

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

解释:

  • $pull 运算符:用于从数组中删除元素。
  • { items: { id: 23 } }:通过匹配其特定字段来指定要删除的嵌套对象。
  • Upsert:设置为 false 以防止在更新与任何现有文档都不匹配时创建新文档。
  • Multi:设置为 true 将更新应用于多个匹配文档(尽管应该只有一个匹配)在本例中)。

Node.js/Mongoose:

在 Mongoose 中,您可以使用以下查询:

<code class="javascript">MyModel.findOneAndUpdate(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }
);</code>

注意: MongoDB 3.6 还支持 $elemMatch 运算符与 $pull 结合使用,以在数组内进行更复杂的过滤。

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

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