MongoDB查询语句

MongoDB查询语句

首先通过循环插入一些测试数据
向test集合中插入10条记录

for(var i=1; i<=10; i++) db.test.insert({name:"user"+i,age:15+i})

MongoDB查询语句_第1张图片
1.查询test集合中所有记录

db.test.find()

MongoDB查询语句_第2张图片
2.查询name为user1的记录

db.test.find({"name":"user1"})

在这里插入图片描述
3.查询test集合中所有记录的部分字段(age和name字段)

db.test.find({},{age:1})
db.test.find({},{name:1})

MongoDB查询语句_第3张图片
第一个花括号表示过滤条件为空,第二个花括号中的age:1表示显示age字段,0表示不显示。当然不显示直接不写就好了,写上去会提示错误。。

4.$gt大于

查看age大于20的记录

db.test.find({age:{$gt:20}})

MongoDB查询语句_第4张图片
5.$gte 大于等于

查看age大于等于20的记录

db.test.find({age:{$gte:20}})

在这里插入图片描述
6.$lt 小于

查看age小于20的记录

db.test.find({age:{$lt:20}})

在这里插入图片描述
7.$lte 小于等于

查看age小于等于20的记录

db.test.find({age:{$lte:20}})

MongoDB查询语句_第5张图片
8.$all 包含指定条件的记录(全部包含)

查找age中包含20和21的记录

db.test.find({age:{$all:[20,21]}})

在这里插入图片描述
9.$exists 存在或不存在某个字段的记录

查找不含有age字段的记录

db.test.find({age:{$exists:false}})

在这里插入图片描述
10.null 字段为空(包括无此字段,如无需这样,配合exists使用排除此干扰)

查找age字段为空的记录(包括没有age字段的记录)

db.test.find({age:null})

在这里插入图片描述
11.$mod 取模运算

查询age为偶数的记录

db.test.find({age:{$mod:[2,0]}})

MongoDB查询语句_第6张图片
12.$ne 不等于指定条件的记录

查询age不等于20的记录

db.test.find({age:{$ne:20}})

MongoDB查询语句_第7张图片
13.$in 包含指定条件的记录(包含部分即可)

查找age含有20或23的记录

db.test.find({age:{$in:[20,23]}})

在这里插入图片描述
14.$nin 不含指定条件的记录

查找age不含有20和21和22的记录

db.test.find({age:{$nin:[20,21,22]}})

MongoDB查询语句_第8张图片
15.$size 指定数组大小的记录

查找age数组大小为3的记录

db.test.find({age:{$size:3}})

在这里插入图片描述
16.$regex 正则表达式匹配

查询name中含有字母u的记录

db.test.find({name:{$regex:'u'}})

MongoDB查询语句_第9张图片
17.distinct 去重

查询所有name字段,去除age大于20的重复记录

db.test.distinct('name',{'age':{$gt:20}})

在这里插入图片描述
18.group 分组

按照age分组,求出相同age的人数和

db.test.group({key:{"age":true},initial:{count:0},reduce:function(obj,prev){prev.count++;}})

其中,key为分组的字段,initial为初始化条件,reduce为需要执行的函数
MongoDB查询语句_第10张图片

新手,如有错误还请指正,在此谢谢大家!

你可能感兴趣的:(MongoDB)