710661809 发表于 2015-7-10 10:03:26

《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":}})
  $in只能对单个键做OR查询,多键查询要用$or.
  db.raffle.find({'$or':[{'ticket_no':75},{'winner':true}]})
  3、$not
  "$not"是元条件句,即可以用在任何其他条件之上。
  $mod 会将查询的值除以第一个给定值,若余数等于第二个给定值则返回该结果.
  4、条件句的规则
  条件句是内层文档的键,而修改器则是外层文档的键。
页: [1]
查看完整版本: 《MongoDB权威指南》读书笔记 第四章 查询