`
welcome66
  • 浏览: 397601 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mongodb的各种查询方法

阅读更多
1.查询比较写法:
查询某个字段比指定值小:$lt
//假设存在集合USERdb.USER.find({REGIST_DATE:{$lt:new Date(2013,0,1)}});
/*前面提到过mongo完全遵守JAVASCRIPT语法,在JAVASCRIPT里面,月份是从0开始的,即上面的查询是查询2013-1-1以前注册的的用户。*/
查询某个字段比指定值大:$gt
db.USER.find({REGIST_DATE:{$gt:new Date(2013,0,1)}});
/*$lt表示小于,表示大于的自然就是$gt了*/
大于等于:$gte   小于等于:$lte
db.USER.find({REGIST_DATE:{$gte:new Date(2013,0,1),$lte:new Date(2013,0,31)}});
/*关于这个时间的问题看起来似乎有些别扭哈,没办法啦,MONGO就是这样啦。习惯就好啦。*/
/*上面的一行查询就是针对REGIST_DATE的组合查询形式,表示查询出所有在2013-1-1到2013-1-31注册的用户*/
2.$in---相当于sql的in,它可以利用索引
db.USER.find(NAME:{$in:['tom','jerry']});
/*如果为NAME字段创建了索引,它就会从索引里面查找*/
/*mongo是区分大小写的,所以集合和文档属性的名字必须与创建它们的时候一致。*/
/*也就是NAME和name是两个不同的属性,它们可以同时存在于一个文档内*/
/*在一个集合内如果即存在NAME属性的文档,又存在name属性的文档,那么上面的那条命令不会把name属性查询出来*/
$nin---$in的相反操作,相当于sql的not in
db.USER.find(NAME:{$nin:['tom','jerry']});
注意:$nin不会利用索引,也就是说上面的命令$nin不会使用针对NAME属性的索引。
$all---没有sql类似的特性与之类比了
它的意义在于:查询条件是一个简单值数组,只有返回属性满足数组内的所有值的文档。这种查询条件只有在属性值是一个数组的情况下。
下面要查询同时包含'nosql'和'mongo'这两个标签的博文
db.blog.find(tags:{$all:['nosql','mongo']});
$ne---不等性比较,它接收单值或数组
db.blog.find(tags:{$ne:'nosql'});//返回所有不包含nosql标签的博文
db.blog.find(tags:{$ne:['nosql','mongo']});//返回所有不包含nosql和mongo这两个标签的博文
$size---检查一个数组的尺寸,不利用索引,不能做范围查询,以后可能会增加这方面的支持
有时iteye会给用户快递一些奖品,iteye可能会把用户曾经填过的地址保存下来。可以这么保存
在USER集合里增加一个address属性,没有留过地址的可以没有。
$not---取反值,只有在没有指定相反操作时才需要用到它。因为绝大部分操作符都有对应的相反操作,所以应当尽量使用相反操作符,比如正则表达式匹配没有相反操作
假如有一天,ITEYE只允许用户名以字母开头了就可以把所有不以字母开头的用户查出来给他们发一封邮件,让他们改名。
db.USER.find(accountName:{$not:/^[a-zA-Z]/})
当然$not也接收单值,但是不建议使用
$exists----检查某个属性的存在性。
比如要把所有包含附件的博文查询出来。
db.blog.find({attachment:{$exists:true}});
没有附件的就是db.blog.find({attachment:{$exists:false}});
或才可以这样做:
db.log.find({attachment:null});//不存在
db.blog.find({attachment:{$ne:null}});//存在
$mod-----求余数,不利用索引
假如说某天ITEYE心血来潮要给所有年龄能被4整队的用户快递一份奖品。
db.USER.find({age:{$mod:[4,0]}});//数组的第一个值是除数,第二个值是期望的余数
$type---以属性类型查询
虽然不建议在同一集合的不同文档相同属性名保存着不同类型的数据,但是有时由于程序bug或设计不严谨可能会出现这种情况。现在要把这种情况找出来,比如_ID属性有的是ObjectID类型,有的是整数。下面把所有_ID是字符串的文档找出来。
db.USER.find(_id:{$type:2})
db.USER.find(_id:{$not:{$type:7}});//把所有主键ObjectID类型的文档找出来
$or  $and----逻辑运算
它们的意义就不多解释了。不过它们的用法非常有意思
比如找出所有月收入在20000以上或2000以下的用户
db.USER.find({$or:[{salary:{$gt:20000}},{salary:{$lt:2000}}]});
找出所有月收入在8000以上,20000以下的用户
db.USER.find({$and:[{salary:{$gte:8000}},{salary:{$lte:20000}}]});
$where-----接收一段javascript代码作为查询条件,不利用索引
假如说要查询所有闰年出生的用户  www.2cto.com  
db.USER.find({$where:'var year=birthday.getFullYear();return year%4==0 && year%100>0 || year%400==0';});
分享到:
评论

相关推荐

    Thinkphp使用mongodb数据库实现多条件查询方法

    主要介绍了Thinkphp使用mongodb数据库实现多条件查询方法,修改了mongodb驱动文件来实现复合查询、多条件查询,需要的朋友可以参考下

    使用aggregate在MongoDB中查询重复数据记录的方法

    主要介绍了使用aggregate在MongoDB中查询重复数据记录的方法的相关资料,需要的朋友可以参考下

    MongoDB的查询方法

    主要介绍了MongoDB的查询方法,需要的朋友可以参考下

    SpringMongodb参考文档.docx

    查询方法 7.3。定义存储库接口 7.3.1。微调储存库定义 7.3.2。空处理存储库方法 7.3.3。将存储库与多个Spring Data模块一起使用 7.4。定义查询方法 7.4.1。查询查询策略 7.4.2。查询创建 7.4.3。属性表达式 7.4.4。...

    MongoDB数据查询方法干货篇

    本文主要给大家介绍了MongoDB数据查询的相关内容,对大家具有一定的参考价值,需要的朋友们一起来学习学习吧。 导入测试数据 在开始之前我们应该先准备数据方便演示,这里我插入的了几条数据,数据如下: db.user....

    MongoDB数据库基本操作方法

    通过这些基本操作,开发者能够轻松管理MongoDB中的数据,满足各种业务需求。无论是初创企业还是大型企业,MongoDB都能提供强大的数据支持。 此外,本资源还涵盖了MongoDB的查询优化、数据更新和删除等高级操作,...

    MongoDB基本操作指南

    在MongoDB中,不强调一定对数据进行Normalize ,很多场合都建议De-normalize,开发人员可以扔掉传统关系数据库各种范式的限制,不需要把所有的实体都映射为一个Collection,只需定义最顶级的class。MongoDB的文档...

    使用 Node.js 和 MongoDB 的查询性能优化案例,代码中添加了注释.js

    mongodb查询性能 在这个案例中,我们首先使用 MongoClient.connect() 方法连接到 MongoDB 数据库,并获取名为 documents 的 collection。接下来,我们进行了以下操作: 使用 collection.find() 方法查询所有文档,...

    python连接、操作mongodb数据库的方法实例详解

    主要介绍了python连接、操作mongodb数据库的方法,结合实例形式详细分析了Python针对MongoDB数据库的连接、查询、排序等相关操作技巧,需要的朋友可以参考下

    在php7中MongoDB实现模糊查询的方法详解

    MongoDB模糊查询语句相信对大家来说都不陌生,这篇文章主要给大家介绍了在php 7中MongoDB实现模糊查询的方法,文中给出了详细的介绍和示例代码,对大家具有一定的参考学习价值,需要的朋友一起来看看吧。

    springMongodb参考文档中文版

    基于MongoDB JSON的查询方法和字段限制 11.3.4。基于JSON的SpEL表达式查询 11.3.5。类型安全的查询方法 11.3.6。全文搜索查询 11.3.7。预测 11.4。杂 11.4.1。CDI集成 12.反应性MongoDB存储库 12.1。介绍 12.2。活性...

    PHP操作MONGODB详细文档

    PHP操作MONGODB详细文档,详细介绍php操作mongod的方法

    Spring Boot中使用MongoDB数据库的方法

    MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自“humongous”,是一种开源...这篇文章主要介绍了Spring Boot中使用MongoDB数据库的方法,需要的朋友可以参考下

    mongoDB实现分页的方法

    mongoDB的分页查询是通过limit(),skip(),sort()这三个函数组合进行分页查询的。 下面这个是我的测试数据 db.test.find().sort({“age”:1}); 第一种方法 查询第一页的数据:db.test.find().sort({“age”:1}).limit...

    MongoDB如何查询耗时记录的方法详解

    explain方法是用来查看db.collecion.find()的一些查询信息的。例如: db.collectionName.find().explain() explain方法有个可选的参数verbose,是个字符串,他表示的是verbose的模式。一共分为3种模式: ...

    MongoDB驱动1.7版本帮助类包括案例方法

    MongoDB驱动1.7版本帮助类包括案例方法,增删改查,多条件拼接查询,批量操作

Global site tag (gtag.js) - Google Analytics