MongoDB根据内嵌文档的某个键删除数组元素的两种方法介绍
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,> use testswitched to db test插入测试数据:> db.country.insert({"name":"China","province":[{"name":"Henan",
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
咖啡豆
华服互联网科技怎么样
科技企业和互联网企业
互联网 科技公司
互联网与新科技
亿账通互联网科技
火传媒上海互联网科技
左右互联网络科技
农村开互联网科技讲堂
欧洲十大科技互联网公司
互联网科技项目计划书材料类
上海宁丞科技互联网
亳州好赞互联网科技有限公司
东莞新华互联网科技学校
每天都有哪些好的互联网科技
互联网公司高科技产品
互联网金融运营模式中的金融科技
美国五大互联网科技公司市值多少
科技美学互联网 艺术
前海云享互联网科技
互联网科技资迅
互联网 科技创业
善班互联网科技
智慧科技互联网
互联网对科技的发展
岳阳华臻互联网科技有限公司
辽宁互联网新科技
互联网金融科技名词解释
云南省自由互联网科技有限公司
青岛互联网科技园