你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2016-03-29] 来源:CSDN博客  作者:我要天天向上的博客 [字体: ]

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

 

[javascript] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. function insertN(obj,n){ 
  2.   var i=0; 
  3.   while(i<n){ 
  4.    obj.insert({id:i,name:"bookNumber"+i,publishTime:i+2000}) 
  5.    i++; 
  6.   } 
  7.  } 
  8. 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,那么我们可以用一下语句进行查询

 

 

[javascript] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. 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年的数据,我们就可以用命令:

 

[javascript] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. 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}}}) 





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而���接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款