1、比较运算符查询
db.集合名.find({"键名": {比较运算符1:值1, 比较运算符2:值2} })
db.yunfan_test.find({"age": {$lt:24}})
2、in/not in
db.集合名.find({"键名": {$in:[值1, 值2, 值3 ...]} })
db.集合名.find({"键名": {$nin:[值1, 值2, 值3 ...]} })db.yunfan_test.find({"age":{$in:[20,21,22]}})
db.yunfan_test.find({"age":{$in:[20,21,22]}})
3、size
db.集合名.find({"键名": {$size:n} })
db.yunfan_test.find({"list":{$size:3}})
4、exists
db.集合名.find({"键名": {$exist: true|false} })
db.yunfan_test.find({"flag":{$exists:true}})
5、or
db.集合名.find({$or:[{条件1}, {条件2}, {条件3}...]})
db.yunfan_test.find({$or:[{"name":"张三"},{"name":"李四"}]})
6、模糊查询
db.集合名.find({"键名": js正则表达)
db.yunfan_test.find({"name":/张三/})
7、查询结果排序(sort)
db.集合名.find().sort({"键名": 1|-1, "键名": 1|-1...}) #1为升序, -1为降序
db.yunfan_test.find().sort({"age":-1})
8、限定返回结果数量(limit)
db.集合名.find().limit(n)
db.集合名.find().skip(n) # 跳过n条,返回从n+1k开始的数据
db.集合名.find().skip(n).limit(m) # 跳过n条,返回后面的m条
db.yunfan_test.find().limit(1).sort({"age":1})
9、查询返回结果数量(count)
db.集合名.find().count()
db.集合名.find().skip(n).count(true) # 与skip结合使用时,要加true
db.yunfan_test.find().count()
10、聚合函数
db.集合名.aggregate({$group:{_id:'$字段名', 别名:{$聚合函数:'$字段名'}}}
);
例:
# 统计同年龄的人数
db.yunfan_test.aggregate({$group:{_id:'$age',count_age:{$sum:1}}}
);# 统计所有人平均年龄
db.yunfan_test.aggregate({$group:{_id:null,总人数:{$sum:1},avg_age:{$avg:"$age"},min_age:{$min:"$age"},max_age:{$max:"$age"}}}
);