《MongoDB权威指南》读书笔记 第四章 查询

   查询是我们在使用数据库过程中使用最频繁的操作,掌握查询的技巧是每个合格程序员必备的素质,下面来学习一下mongodb的查询。

   一、find简介

   查询就是返回被查询集合的子集,子集的范围从0个到整个集合,find的第一个参数为查询条件,如果不设置条件则返回整个文档。

   例:db.c.find()

     db.c.find({'age':27})

         db.c.find({'age':27, 'name':'leon'}) #and 条件,意思是age为27且name为leon

 

     1、指定返回值  

      find函数的第二个参数用来设定返回字段,通过过滤不必要的字段,可以节省传输数据量及客户端解码文档的时间和内存消耗.

      例:db.user.find({}, {"username":1, "email":1}) 

       上面将会返回三个字段:_id, username, email

       _id是默认返回的,要显式过滤某字段可以把1改为0

      2、限制

      数据库所关心的查询文档的值必须是常量

二、查询条件

     1、$lt 、$lte 、$gt、  $gte

     $lt 、$lte 、$gt、  $gte 、$ne分别对应 <、<=、>、>=、!=

     例如,查询在18~30岁的用户

     db.users.find({"age":{"$gte":18, "$lte":30}})

     查义2007/1/1日前注册的人,

     start = new Date("01/01/2007")

     db.users.find({"registered":{"$lt":start}})

      

     2、OR查询

     两种方式进行OR查询。

     $in 查询一个键的多个值,与之对应的是$nin

     例:db.raffle.find({'ticket_no':{"$in":[725, 542, 390]}})

     $in只能对单个键做OR查询,多键查询要用$or.

     db.raffle.find({'$or':[{'ticket_no':75},{'winner':true}]})

     3、$not

     "$not"是元条件句,即可以用在任何其他条件之上。

     $mod 会将查询的值除以第一个给定值,若余数等于第二个给定值则返回该结果.

     4、条件句的规则

     条件句是内层文档的键,而修改器则是外层文档的键。

posted @ 2012-11-22 01:11  践道者  阅读(281)  评论(0编辑  收藏  举报