MongoDB的find操作详解

   MongoDB使用find来执行查询。find的第一个参数相当于where,其形式也是一个文档,说明查询所需匹配的条件,文档中的多个key/value能够实现类似AND的操作。

   1 指定所需返回的键 (默认总会返回“_id"键,除非声明为0)

db.mydb.find({}, {"name": 1, "_id": 0})

   2 指定复杂查询条件,可以利用"$lt"、"$lte"、"gt"、"gte"和"$ne"等比较操作符,形成复杂的查询条件。

db.mydb.find({"age": {"$gte": 10, "$lte": 20}})

   3 OR查询 

db.mydb.find({"age": {"$in": [10, 20, 30])))
db.mydb.find({"age": {"$nin": [10, 20, 30]}})
db.mydb.find({"$or": [{"gender": "female"}, {"name": "winstar"}]})

   

   4 $mod条件

db.mydb.find({"age": {"$mod": [3, 2]}})

   5 $not条件

db.mydb.find({"age": {"$not": {"$mod": [3, 2]}}})

   6 null 

   (1)简单方式

db.mydb.find({name: null})

   将匹配“name"的值为null的文档以及根本没有”name“这个字段的文档。

   

   (2)复杂方式--确保含有”name”字段,但值为null的文档

db.mydb.find({"name": {"$in": [null], "$exists": true}})

   7 正则表达式

db.mydb.find({"name": /winstar/i})

   8 根据单个数组元素值查询

db.mydb.insert({"friends": ["winstar", "jack", "john"]})
db.mydb.find({"friends": "jack"})

   9 根据数据中的多个元素值查询

db.mydb.find({"friend": {"$all": ["jack", "john"]}})

   10 根据数组指定位置的元素值查询

db.mydb.find({"friends.1": "jack"})

   11 根据数组的长度查询

db.mydb.find({"friends": {"$size": 3}})

   12 指定查询返回的条数 limit

db.mydb.find().limit(10)

   13 根据字段是否存在的查询

db.mydb.find({age: {"$exists": true}})
db.mydb.find({age: {"$exists": false}})

   14 返回查询记录条数

db.mydb.find().count()

   

   15 返回整个集合的记录条数

db.mydb.count()

   16 限制返回记录的起点

db.mydb.find().skip(1).limit(1)

   17 按某个字段升序排序

db.mydb.find().sort({age: 1})

   18 按某个字段降序排序

db.mydb.find().sort({age: -1})

猜你喜欢

转载自2008winstar.iteye.com/blog/2087774
今日推荐