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:正则表达式})。 下一条: Redis的基础教程
|