设为首页 收藏本站
查看: 937|回复: 1

[经验分享] MongoDB查询集合中的文档

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-8-21 10:00:32 | 显示全部楼层 |阅读模式
MongoDB查询集合中的文档参考资料:http://blog.csdn.net/qq_36040184/article/details/54355085
测试:
集合中插入数据
> db.chenji.insert({"name":"张三","年纪":"三年级","年龄":"14"})
WriteResult({ "nInserted" : 1 })
> db.chenji.insert({"name":"王三","年纪":"四年级","年龄":"16"})
WriteResult({ "nInserted" : 1 })
> db.chenji.insert({"name":"王七","年纪":"一年级","年龄":"8"})
WriteResult({ "nInserted" : 1 })
> db.chenji.insert({"name":"张巴","年纪":"一年级","年龄":"9"})
WriteResult({ "nInserted" : 1 })
> db.chenji.insert({"name":"谢娜","年纪":"七年级","年龄":"16"})
WriteResult({ "nInserted" : 1 })
> db.chenji.find()
{ "_id" : ObjectId("59990ec402730a37fe1ee79e"),"name" : "建伟", "年纪" : "二年级","年龄" : "12" }
{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年纪" : "三年级", "年龄" : "13" }
{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "张三","年纪" : "三年级", "年龄" : "14" }
{ "_id" : ObjectId("599886227cd6cda607043cd3"),"name" : "王三", "年纪" : "四年级","年龄" : "16" }
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }
{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "谢娜","年纪" : "七年级", "年龄" : "16" }


3.1使用条件表达式(<, <=, >, >=,!=)//大于: field > value
db.collection.find({field:{$gt:value}});

db.chenji.find({"年龄":{$gt:"6"}});
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }

//小于: field < value
db.collection.find({field:{$lt:value}});
> db.chenji.find({"年龄":{$lt:"16"}});
{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建伟","年纪" : "二年级", "年龄" : "12" }
{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年纪" : "三年级", "年龄" : "13" }
{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "张三","年纪" : "三年级", "年龄" : "14" }


//大于等于: field >=value
db.collection.find({field:{$gte:value}});
> db.chenji.find({"年龄":{$gte:"7"}});
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }
> db.chenji.find({"年龄":{$gte:"6"}});
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" : ObjectId("599886537cd6cda607043cd5"),"name" : "张巴", "年纪" : "一年级","年龄" : "9" }

//小于等于: field <=value
db.collection.find({field:{$lte:value}});

> db.chenji.find({"年龄":{$lte:"13"}});
{ "_id" : ObjectId("59990ec402730a37fe1ee79e"),"name" : "建伟", "年纪" : "二年级","年龄" : "12" }
{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年纪" : "三年级", "年龄" : "13" }

//不等于: field != value
db.collection.find({field:{$ne:value}});

db.chenji.find({"name":{$ne:"谢娜"}});
{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建伟","年纪" : "二年级", "年龄" : "12" }
{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年纪" : "三年级", "年龄" : "13" }
{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "张三","年纪" : "三年级", "年龄" : "14" }
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }

db.chenji.find({"年纪":{$ne:"三年级"}});
{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建伟","年纪" : "二年级", "年龄" : "12" }
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }
{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "谢娜","年纪" : "七年级", "年龄" : "16" }

3.2统计(count)、排序(sort)、分页(skip、limit)> db.chenji.count();
7
> db.chenji.find().count();
7

> db.chenji.find({"年龄":{$lt:"16"}})
{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建伟","年纪" : "二年级", "年龄" : "12" }
{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年纪" : "三年级", "年龄" : "13" }
{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "张三","年纪" : "三年级", "年龄" : "14" }
>
> db.chenji.find({"年龄":{$lt:"16"}}).count();
3

> db.chenji.find({"年纪":{$ne:"三年级"}});
{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建伟","年纪" : "二年级", "年龄" : "12" }
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }
{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "谢娜","年纪" : "七年级", "年龄" : "16" }
> db.chenji.find({"年纪":{$ne:"三年级"}}).count();
5

排序:默认是按照自身的id号来排序
> db.chenji.find().sort({"年龄":1});

{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建伟","年纪" : "二年级", "年龄" : "12" }
{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年纪" : "三年级", "年龄" : "13" }
{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "张三","年纪" : "三年级", "年龄" : "14" }
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }
{ "_id" : ObjectId("5998866e7cd6cda607043cd6"),"name" : "谢娜", "年纪" : "七年级","年龄" : "16" }
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }

忽略前两个id的记录,查看接着的三条记录

> db.chenji.find().skip(2).limit(3);
{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "张三","年纪" : "三年级", "年龄" : "14" }
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }

> db.chenji.find().skip(2).limit(2);
{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "张三","年纪" : "三年级", "年龄" : "14" }
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }

按年龄倒序排序,并且查看第一行记录

> db.chenji.find().sort({"年龄":-1}).limit(1)
{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "张巴","年纪" : "一年级", "年龄" : "9" }
按年龄倒序排序,并且查看第二行记录
> db.chenji.find().sort({"年龄":-1}).limit(2)
{ "_id" : ObjectId("599886537cd6cda607043cd5"),"name" : "张巴", "年纪" : "一年级","年龄" : "9" }
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }


> db.chenji.find().sort({"年龄":-1}).skip(2).limit(2).count(1)
2
> db.chenji.find().sort({"年龄":-1}).skip(1).limit(3)
{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年纪" : "一年级", "年龄" : "8" }
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }
{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "谢娜","年纪" : "七年级", "年龄" : "16" }

3.3$or,相当于关系型数据库中的OR,表示或者的关系
查询name为张三或者年龄为16
> db.chenji.find({$or:[{name:"王三"},{"年龄":16}]})
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }
> db.chenji.find({$or:[{name:"王三"},{"年龄":12}]})
{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年纪" : "四年级", "年龄" : "16" }

3.4$nor,表示根据条件过滤掉某些数据
查询name不是张三或者年龄不是13
>db.chenji.find({$nor:[{name:"李旭"},{"年龄":13}]})
3.5$exists,用于查询集合中存在某个键的文档或不存在某个键的文档查询customer集合中存在name键的所有文档
$exists:1表示真,指存在
$exists:0表示假,指不存在


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-403194-1-1.html 上篇帖子: mongodb二进制安装文档 下篇帖子: MongoDB 文档字段增删改
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表