• 1
  • 2
  • 3
  • 4
  • 5
mssql数据库问题 首 页  »  帮助中心  »  数据库  »  mssql数据库问题
MongoDB学习(6):MongoDB的find查询比较符
发布日期:2016-4-19 15:4:13

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

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

  function insertN(obj,n){

  var i=0;

  while(i

  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:{$nin:[value1,value2,...]}}),运用该命令就可以查询出键filed中不包含value1或value2,...等的数据。

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

  三,$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})

  

  五,$not取反

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

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

  

  六,正则表达式查询

  命令格式db.[documentName].find({filed:正则表达式})。