如何在 MongoDB 中通过索引删除数组元素?

PHPz
发布: 2023-09-08 12:17:02
转载
845 人浏览过

如何在 MongoDB 中通过索引删除数组元素?

您可以使用以下两个步骤通过索引删除数组元素 -

第一步如下 -

db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});
登录后复制

上述语法将在“yourIndexValue”的位置放置一个空值。之后,您需要从数组字段中提取空值以从数组元素中删除。

第二步如下 -

db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});
登录后复制

为了实现语法,让我们用文档创建一个集合。使用文档创建集合的查询如下 -

> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David", "InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803") }
登录后复制

借助 find() 方法显示集合中的所有文档。查询如下 -

> db.removeArrayElementByItsIndexDemo.find().pretty();
登录后复制
登录后复制

以下是输出 -

{ "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" : "David", "InstructorAge" : 28, "InstructorSubject" : [ "MongoDB", "MySQL", "Java", "SQL Server", "PL/SQL" ] }
登录后复制

这是通过索引删除数组元素的查询。

第 1 步 -查询如下 -

> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
登录后复制

第2步- 查询如下 -

> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
登录后复制

让我们检查一下数组元素“Java”是否已被删除。查询如下 -

> db.removeArrayElementByItsIndexDemo.find().pretty();
登录后复制
登录后复制

以下是输出 -

{ "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" : "David", "InstructorAge" : 28, "InstructorSubject" : [ "MongoDB", "MySQL", "SQL Server", "PL/SQL" ] }
登录后复制

查看示例输出,数组元素“Java”已被完全删除。

以上是如何在 MongoDB 中通过索引删除数组元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

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