首先通过循环插入一些测试数据
向test集合中插入10条记录
for(var i=1; i<=10; i++) db.test.insert({name:"user"+i,age:15+i})
db.test.find()
db.test.find({"name":"user1"})
3.查询test集合中所有记录的部分字段(age和name字段)
db.test.find({},{age:1})
db.test.find({},{name:1})
第一个花括号表示过滤条件为空,第二个花括号中的age:1表示显示age字段,0表示不显示。当然不显示直接不写就好了,写上去会提示错误。。
4.$gt大于
查看age大于20的记录
db.test.find({age:{$gt:20}})
查看age大于等于20的记录
db.test.find({age:{$gte:20}})
查看age小于20的记录
db.test.find({age:{$lt:20}})
查看age小于等于20的记录
db.test.find({age:{$lte:20}})
查找age中包含20和21的记录
db.test.find({age:{$all:[20,21]}})
查找不含有age字段的记录
db.test.find({age:{$exists:false}})
10.null 字段为空(包括无此字段,如无需这样,配合exists使用排除此干扰)
查找age字段为空的记录(包括没有age字段的记录)
db.test.find({age:null})
查询age为偶数的记录
db.test.find({age:{$mod:[2,0]}})
查询age不等于20的记录
db.test.find({age:{$ne:20}})
查找age含有20或23的记录
db.test.find({age:{$in:[20,23]}})
查找age不含有20和21和22的记录
db.test.find({age:{$nin:[20,21,22]}})
查找age数组大小为3的记录
db.test.find({age:{$size:3}})
查询name中含有字母u的记录
db.test.find({name:{$regex:'u'}})
查询所有name字段,去除age大于20的重复记录
db.test.distinct('name',{'age':{$gt:20}})
按照age分组,求出相同age的人数和
db.test.group({key:{"age":true},initial:{count:0},reduce:function(obj,prev){prev.count++;}})
其中,key为分组的字段,initial为初始化条件,reduce为需要执行的函数
新手,如有错误还请指正,在此谢谢大家!