MongoDB之数据查询(嵌套集合)
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,在MongoDB数据库里面每一个集合数据可以继续保存其他的集合数据,例如有些人员保存家庭信息。范例:增加数据db.emp.insert({"name":"林A","sex":"男","age":22,
千家信息网最后更新 2025年01月20日MongoDB之数据查询(嵌套集合)在MongoDB数据库里面每一个集合数据可以继续保存其他的集合数据,例如有些人员保存家庭信息。
范例:增加数据
db.emp.insert({"name":"林A","sex":"男","age":22,"sal":8000,"loc":"北京","course":["语文","数学","英语","音乐","政治"],"parents":[{"name":"林A父亲","age":50,"job":"农民"},{"name":"林A母亲","age":49,"job":"工人"}]});
db.emp.insert({"name":"林B","sex":"男","age":30,"sal":8000,"loc":"北京","course":["语文","数学"],"parents":[{"name":"林B父亲","age":55,"job":"工人"},{"name":"林B母亲","age":52,"job":"农民"}]});
db.emp.insert({"name":"林C","sex":"男","age":35,"sal":8000,"loc":"北京","course":["语文","数学","英语"],"parents":[{"name":"林C父亲","age":60,"job":"工人"},{"name":"林C母亲","age":59,"job":"职员"}]});
db.emp.insert({"name":"林D","sex":"男","age":28,"sal":8000,"loc":"北京","course":["语文","数学","政治"],"parents":[{"name":"林D父亲","age":58,"job":"局长"},{"name":"林D母亲","age":54,"job":"处长"}]});
db.emp.insert({"name":"林E","sex":"男","age":40,"sal":8000,"loc":"北京","course":["语文","政治"],"parents":[{"name":"林E父亲","age":70,"job":"工人"},{"name":"林E母亲","age":68,"job":"局长"}]});
此时的内容是嵌套的集合,而这种集合的数据的判断只能通过"$elemMatch"来完成。
范例:查询出父母之中有局长的信息
> db.emp.find({"$and":[{"age":{"$gte":30}},{"parents":{"$elemMatch":{"job":"局长"}}}]}).pretty();
{
"_id" : ObjectId("599148bf0184ff511bf02b95"),
"name" : "林E",
"sex" : "男",
"age" : 40,
"sal" : 8000,
"loc" : "北京",
"course" : [
"语文",
"政治"
],
"parents" : [
{
"name" : "林E父亲",
"age" : 70,
"job" : "工人"
},
{
"name" : "林E母亲",
"age" : 68,
"job" : "局长"
}
]
}
由于这种查询的时候条件比较麻烦,所以如果可能,尽量别搞这么复杂。
范例:增加数据
db.emp.insert({"name":"林A","sex":"男","age":22,"sal":8000,"loc":"北京","course":["语文","数学","英语","音乐","政治"],"parents":[{"name":"林A父亲","age":50,"job":"农民"},{"name":"林A母亲","age":49,"job":"工人"}]});
db.emp.insert({"name":"林B","sex":"男","age":30,"sal":8000,"loc":"北京","course":["语文","数学"],"parents":[{"name":"林B父亲","age":55,"job":"工人"},{"name":"林B母亲","age":52,"job":"农民"}]});
db.emp.insert({"name":"林C","sex":"男","age":35,"sal":8000,"loc":"北京","course":["语文","数学","英语"],"parents":[{"name":"林C父亲","age":60,"job":"工人"},{"name":"林C母亲","age":59,"job":"职员"}]});
db.emp.insert({"name":"林D","sex":"男","age":28,"sal":8000,"loc":"北京","course":["语文","数学","政治"],"parents":[{"name":"林D父亲","age":58,"job":"局长"},{"name":"林D母亲","age":54,"job":"处长"}]});
db.emp.insert({"name":"林E","sex":"男","age":40,"sal":8000,"loc":"北京","course":["语文","政治"],"parents":[{"name":"林E父亲","age":70,"job":"工人"},{"name":"林E母亲","age":68,"job":"局长"}]});
此时的内容是嵌套的集合,而这种集合的数据的判断只能通过"$elemMatch"来完成。
范例:查询出父母之中有局长的信息
> db.emp.find({"$and":[{"age":{"$gte":30}},{"parents":{"$elemMatch":{"job":"局长"}}}]}).pretty();
{
"_id" : ObjectId("599148bf0184ff511bf02b95"),
"name" : "林E",
"sex" : "男",
"age" : 40,
"sal" : 8000,
"loc" : "北京",
"course" : [
"语文",
"政治"
],
"parents" : [
{
"name" : "林E父亲",
"age" : 70,
"job" : "工人"
},
{
"name" : "林E母亲",
"age" : 68,
"job" : "局长"
}
]
}
由于这种查询的时候条件比较麻烦,所以如果可能,尽量别搞这么复杂。
母亲
父亲
语文
北京
数据
局长
工人
政治
数学
查询
信息
农民
范例
英语
复杂
之中
人员
内容
处长
家庭
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
重庆聚财汇互联网科技
大逃杀国内服务器
基础技术维护网络安全
公安局网络安全事件应急预案
粉象生活软件开发
南理工和南航网络安全哪个好
武汉大禹网络安全
社交网络安全的重要性
网络技术工程师年终总结
怎么才能打开我的世界的服务器
图书管理数据库建表代码
红袖日记软件开发
数据库中存储了什么
沧州软件开发厂家价格
区委网信办网络安全微视频
盖世网络技术有限公司
windows服务器安装
万点声语网络技术北京有限公司
如何在网易我的世界开服务器
当前主流的关系数据库有哪些
金山区市场软件开发常见问题
加强网络安全意识形态
网络安全联盟QQ
网络安全的首要大敌
怎样查找游戏光遇所在的服务器
我讲网络安全普法知识怎么写
图片打不开服务器运行失败
深圳网辰互联网科技有限公司
orcl11g数据库连接
网络安全关键词有哪些