码迷,mamicode.com
首页 > 数据库 > 详细

Mongodb 笔记03

时间:2016-01-09 12:27:41      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

查询

1. MongoDB使用find来进行查询。find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件。空的查询会匹配集合的全部内容。要是不指定查询,默认是{}。

2. 可以通过find的第二个参数来指定想要的键。这样即会节省传输的数量,又能节省客户端解码文档的时间和内存消耗。举例:db.users.find({},{"username":1,"email":1})

3. 默认情况下"_id"这个键总是被返回,即便是没有指定想要返回这个键。可以通过第二个参数剔除。

4. 可以通过第二个参数来剔除查询结构中的某个键值对。举例:db.users.find({},{"_id":0}),这样"_id"就不会被返回。

5. 查询条件

    1). 查询条件:"$lt"、"$lte"、"$gt"和"$gte"就是全部的比较操作符,分别对应<、<=、> 和>=。举例:db.users.find({"age":{"$gte":18,"$lte":30}})。"$ne" 表示不等于。

    2). OR查询:

         a. "$in"可以用来查询一个键的多个值: db.raffle.find({"ticket_no":{"$in":[725,542,390]}})

         b. "$nin"将返回与数组中所有条件不匹配的内容: db.raffle.find({"ticket_no":{"$nin":[725,542,390]}})

         c. "$or"可以在多个键中查找任意给定的值: db.raffle.find({"$or":[{"ticket_no":725},{"wenner":true}]})

    3). $not"        

         a. "$mod"取模运算符,"$mod"将会查询的值除以第一个给定值,若余数等于第二个给定的值则匹配成功:db.users.find({"id_num":{"$mod":[5,1]}})

         b. 如果查询上一条相反的结果:db.users.find({"id_num":{"#not":{"$mod":[5,1]}}})。

         c. "$not"与正则表达式联合使用时,极为有用,用来查找那些鱼特定模式不匹配的文档。

    4). 条件语义: 条件语句是内层文档的键,而修改器则是外层文档的键。

6. 使用普通的AND型查询时,总是希望尽可能用最少的条件来限定结果的范围。OR型查询正相反:第一个查询条件应该尽可能匹配更多的文档,这样才是最为高效的。"$or"在任何情况下都会

    正常工作。如果查询优化器可以更高效地处理"$in",那就选择使用它。

7. 特定查询条件:

    1). null : db.c.find({"y":null}) 。null 不仅会匹配某个键的值为null的文档,而且还会匹配不包含这个键的文档。

                  如果仅想匹配键值值为null的文档,纪要检查该键的值是否为null,还要通过"$exists"条件判定键值已存在。db.c.find({"z":{"$in":[null],"$exists":true}})

    

Mongodb 笔记03

标签:

原文地址:http://www.cnblogs.com/Jtianlin/p/5115784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!