首页 > web前端 > js教程 > 正文

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

DDD
发布: 2024-11-02 07:26:29
原创
996 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!