MongoDB查询语句

MongoDB查询语句

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

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

在这里插入图片描述
1.查询test集合中所有记录

db.test.find()

在这里插入图片描述
2.查询name为user1的记录

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}})

在这里插入图片描述
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}})

在这里插入图片描述
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]}})

在这里插入图片描述
12.$ne 不等于指定条件的记录

查询age不等于20的记录

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

在这里插入图片描述
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]}})

在这里插入图片描述
15.$size 指定数组大小的记录

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

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

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

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

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

在这里插入图片描述
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为需要执行的函数
在这里插入图片描述

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

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值