MongoDB学习—(6)MongoDB的find查询比较符

首先,先通过以下函数向BookList集合中插入10000条数据

 function insertN(obj,n){
   var i=0;
   while(i<n){
    obj.insert({id:i,name:"bookNumber"+i,publishTime:i+2000})
    i++;
   }
  }
 var BookList=db.getCollection("BookList")
调用函数,这样,BookList中就有10000条数据了

通过命令db.[documentName].find({条件},{键指定})来查询具有特定特征的数据,键指定可用于指定什么键显示想、什么键不显示。例如:{id:0,name:1,publishTime:1}表示id键内容不显示,name与publishTime内容显示。

一,比较操作符查询

$lt   (less than)

<

$lte   (less than equal)

<=

$gt    (greater than)

>

$gte   (greater than equal)

>=

$ne   (not equal)

!=


我们可以运用比较操作符来查询出出版日期publishTime在2010年至2016年的书,并且不显示id,那么我们可以用一下语句进行查询

 

db.BookList.find({publishTime:{$gte:2010,$lte:2016}},{_id:0,name:1,publishTime:1})


效果如下:



其他比较符可用类似方法组合使用。

二,$in与$nin包含与不包含

$in与$nin的用法是根据特定的键值。

命令格式db.[documentName].find({filed:{$in:[value1,value2,...]}}),运用该命令就可以查询出键filed中包含value1或value2,...等的数据,是一个或关系,只要包含有一个相同的value就符合查找条件。
命令格式db.[documentName].find({filed:{$nin:[value1,value2,...]}}),运用该命令就可以查询出键filed中不包含value1或value2,...等的数据。


三,$or或查询

命令格式db.[documentName].find({$or:[{条件},{条件},...]}),注意中括号与花括号的区别,例如我们要查询id小于30,出版日期publishTime介于2000-2010年的数据,我们就可以用命令:

db.BookList.find({$or:[{id:{$lt:30}},{publishTime:{$gte:200,$lte:2010}}]},{_id:0,name:1,publishTime:1})

四,Null关键字

Null关键字可用于查询集合中哪些数据不包含某些键,命令格式db.[documentName].find({filed:null})


五,正则表达式查询

命令格式db.[documentName].find({filed:正则表达式}),由于我对于JS的正则表达式不是太了解,我就不尝试了( ̄o ̄) . 

六,$not取反

该指令可将任何查询条件取反,类似于查询publishTime大于2016年的,通过$not取反可取到publishTime小于等于2016年的,一下为指令变换:

db.BookList.find({publishTime:{$gt:2016}})   取反   db.BookList.find({publishTime:{$not:{$gt:2016}}}) 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值