设为首页 收藏本站
查看: 1731|回复: 0

[经验分享] MongoDB入门5——查询(一)

[复制链接]
发表于 2018-10-28 08:38:11 | 显示全部楼层 |阅读模式
  1.find()查询
  在之前的学习中没我们其实已经很多次的接触过find()查询。基本上来说,find查询是比较简单明了的。find()的第一个参数决定了需要查询的文档的特征,如果该参数为空,则查询结果会匹配一个集合中所有的文档。例如:
  

  
db.coll.find({});
  
db.coll.find();
  

  如果要查询姓名为张三的人:
  

  
db.coll.find({"name":"张三"});
  

  如果要查询姓名为张三,年龄30岁的人的信息:
  

  
db.coll.find({"name":"张三","age":30});
  


        依次类推啦。  有时候并不一定需要将整个文档中所有的信息都查询出来,这就类似于SQL中的select语句的功能。那么可以通过find()的第二个参数指定需要返回的信息。例如,我们只关心姓名信息,可以这么写:
  

  
db.colls.find({},{"name":1});
  


        此外,如果有很多键值对,需要排序某些,则可以采取下面的写法:  

  
db.colls.find({},{"name":0});
  


        默认情况下,如果不显示的排除_id,它是会被查询出来的。此外,还需要说明的是,查询条件中键值对中的“值”的内容必须是常量,也就是说,类似下面的写法是不允许的:  

  
db.stock.find({"in":"this.out"});
  


2.查询中的比较操作
        共有以下几个比较操作符:$lt、$lte、$gt、$gte,分别对应=。使用也很简单。例如,要查询年龄在20-30岁之间的人的信息,可以这么写:  

  
db.person.find({"age":{"$gte":20,"$lte":30}});
  


        对于!=操作,对应的比较操作符是$ne,它的使用方法也是很显而易见的。
3.查询中的逻辑运算
        AND操作并没有特别的操作符,只需要将多个查询条件以逗号隔开即可。OR运算则有专门的操作符$or。假设我们想查询年龄为20或者名字叫Sam的人的信息,可以这样:  

  
db.person.find("$or":[{"age":20},{"name":"Sam"}]);
  


        对于!运算,有对应的$not操作符,它可以使用在任何的条件之上,查询年龄不是20岁的人的信息:  

  
db.person.find("$not":{"age":20});
  

  

  

  

  




运维网声明 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-627334-1-1.html 上篇帖子: MongoDB:Ruby中嵌入Javascript实战 下篇帖子: MongoDB入门6——查询(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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