MongoDB根据内嵌文档的某个键删除数组元素的两种方法介绍
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,> use testswitched to db test插入测试数据:> db.country.insert({"name":"China","province":[{"name":"Henan",
千家信息网最后更新 2025年11月11日MongoDB根据内嵌文档的某个键删除数组元素的两种方法介绍> use test
switched to db test
插入测试数据:
> db.country.insert({"name":"China","province":[{"name":"Henan","code":"1001"},{"name":"Hebei","code":"1002"},{"name":"Jiangsu","code":"1003"}]});
WriteResult({ "nInserted" : 1 })
方法一:
想删除名为"Hebei"的省份信息,分两步:
(1).查找到对应的数组元素,并将其替换为"null"
> db.country.update({"name":"China","province.name":"Hebei"},{"$set":{"province.$":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
此时数组数据如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, "null", { "name" : "Jiangsu", "code" : "1003" } ] }
(2).然后再清空数组中的"null"
> db.country.update({"name":"China"},{"$pull":{"province":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
删除后的最终数据如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }
>
方法二:
根据某个键直接删除数组元素:
> db.country.update({"name":"China"},{"$pull":{"province":{"name":"Hebei"}}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
> db.country.find()
{ "_id" : ObjectId("59f97e58a4fe2442400cbd2d"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }
>
switched to db test
插入测试数据:
> db.country.insert({"name":"China","province":[{"name":"Henan","code":"1001"},{"name":"Hebei","code":"1002"},{"name":"Jiangsu","code":"1003"}]});
WriteResult({ "nInserted" : 1 })
方法一:
想删除名为"Hebei"的省份信息,分两步:
(1).查找到对应的数组元素,并将其替换为"null"
> db.country.update({"name":"China","province.name":"Hebei"},{"$set":{"province.$":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
此时数组数据如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, "null", { "name" : "Jiangsu", "code" : "1003" } ] }
(2).然后再清空数组中的"null"
> db.country.update({"name":"China"},{"$pull":{"province":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
删除后的最终数据如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }
>
方法二:
根据某个键直接删除数组元素:
> db.country.update({"name":"China"},{"$pull":{"province":{"name":"Hebei"}}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
> db.country.find()
{ "_id" : ObjectId("59f97e58a4fe2442400cbd2d"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }
>
数组
数据
元素
方法
信息
省份
并将
测试
文档
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网家装科技化
湖南常见网络技术的技术开发
软件开发趋势 论文
辽宁软件开发价格服务标准
杰理蓝牙芯片软件开发工具
redis与数据库比对
启动rac数据库的方式
打印服务器工具
数据库原理试卷分析
避免软件开发过程中的缺陷
软件开发者价钱
魔力象限网络安全初创公司
网络安全主要包括哪些内容
服务器程序定义
乔宇网络安全
如何用网络安全模式进入设置
多措并举强化网络安全管理
pb清空表数据库
网络安全的死敌
win12服务器怎么安装软件
微程之家互联网科技
碧蓝航线各服务器 兑换
上海现代软件开发模型
闵行区优势网络技术诚信服务
利用互联网发展高科技
暴雪战网切换服务器买游戏
网络安全自查情况报告2020
深圳前十软件开发企业
我的世界斗罗大陆服务器 网易
深圳连贝互联网科技有限公司