MongoDB根据内嵌文档的某个键删除数组元素的两种方法介绍
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,> use testswitched to db test插入测试数据:> db.country.insert({"name":"China","province":[{"name":"Henan",
千家信息网最后更新 2024年11月14日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安全错误
数据库的锁怎样保障安全
数据库保存照片
500服务器错误服务器发生异常
计算机网络技术产生的基础
网络安全专业性强
上海网络安全情况
数据库技术未来发展趋势
第一个软件开发时间
网络安全弊大于利四辩
无线网络安全问题及解决方法
软件开发总结报告模板
网络安全app查询
安徽应用软件开发服务费
网站服务器假设
广东科技学院互联网专班是什么
芜湖直播软件开发需要多少钱
网络安全知识图片 板报
网络安全自查和隐患排查
网络安全宣传片名字
长沙科技公司互联网
黄埔软件开发哪家靠谱
聊城开发区软件开发价格
数据库和redis双写
北京先进软件开发技巧
数据库关系运算例题rs
禾字开发后能用软件开发吗
企业级服务器能给个人上网吗
徐州换油网络技术有限公司
幼儿园网络安全教育画手抄报
怎么登录samba服务器
神武120装备服务器多少级出