MongoDB查询相关命令、聚合函数

查询语句,关键字时find

//查询集合内的所有文档
db.集合名.find()

去重

 db.student.distinct("age")

查询指定文档内的内容,可以用0=false,1=true

db.student.find({筛选条件},{需要显示的字段})
db.student.find({},{"_id":false})
db.student.find({"age":10})
db.student.find({"age":10},{"name":true})
db.student.find({"age":10},{"name":1,"_id":0})

例子1:

 

创建一个集合并插入数据

_id,name,age,color

//创建集合
use huluwa

//往集合中插入数据
db.huluwa.insert([
{"name":"大娃","age":1,"color":"red"},
{"name":"二娃","age":1,"color":"orange"},
{"name":"三娃","age":5,"color":"yellow"},
{"name":"四娃","age":5,"color":"green"},
{"name":"五娃","age":7,"color":"cyan"}
])

//查出年龄为1的颜色
db.huluwa.find({"age":5},{"color":1})
//查出颜色为红和黄的信息
db.huluwa.find({"color":{$in:["red","yellow"]}})
db.huluwa.find({$or:[{"color":"red"},{"color":"yellow"}]})
//查询年龄为5,并且颜色为黄的名字
db.huluwa.find({"age":5,"color":"yellow"},{"name":1})

//大于>:$get,小于<:$lt,大于等于>=$gte,小于等于<=:lte,不等于!=:$ne
//查询年龄大于5岁
db.huluwa.find({"age":{'$gt':5}})
//年龄小于3岁
db.huluwa.find({"age":{'$lt':3}}
//年龄大于等于5岁的葫芦娃信息
db.huluwa.find({"age":{"$gte":5}})
//年龄小于等于1岁的葫芦娃信息
db.huluwa.find({"age":{"$lte":1}})
//年龄不等于5岁的葫芦娃信息
db.huluwa.find({"age":{"$ne":5}})
//5≤age≤9岁的葫芦娃信息
db.huluwa.find({"age":{"$gte":5,"$lte":9}})

 

 例子2:

插入奥特曼数据,_id,name:(佐菲、杰克、艾斯、赛文、泰罗、雷欧、迪迦、梦比优斯)、

age(1000、9800、20000、4000、9999、8888、6666、77777)

//创建aotu集合
use aotu
//往集合中插入数据
db.aotu.insert([
{"_id":1,"name":"佐菲","age":1000},
{"_id":2,"name":"杰克","age":9800},
{"_id":3,"name":"艾斯","age":20000},
{"_id":4,"name":"赛文","age":4000},
{"_id":5,"name":"泰罗","age":9999},
{"_id":6,"name":"雷欧","age":8888},
{"_id":7,"name":"迪迦","age":6666},
{"_id":8,"name":"梦比优斯","age":77777},
])

//查询年龄大于8000岁的奥特曼名字
db.aotu.find({"age":{"$gt":8000}},{"name":1,"_id":0})
//查询年龄小于60000岁的奥特曼信息
db.aotu.find({"age":{"$lt":60000}})
//查询年龄大于等于4000岁的奥特曼名字
db.aotu.find({"age":{"$gte":4000}})
//查询年龄小于等于70000岁的奥特曼名字
db.aotu.find({"age":{"$lte":70000}})
//查询10000<age>77777岁的奥特曼信息
db.aotu.find({"age":{"$gt":10000,"$lt":77777}})

 

count

//查询返回结果中文档的数量
db.aotu.find().count()
//查询大于60000岁的人数
db.aotu.find({"age":{"$gt":60000}}).count()

limit、skip

//查询返回结果的指定条数limit()
db.aotu.find().limit(4)

//指定跳过的文档条数skip()
//查询从四条开始的2条数据
db.aotu.find().limit(3).skip(3)

 

排序sort

//对所有文档进行排序sort()
//升序1
db.aotu.find().sort({"age":1})
//降序-1
db.aotu.find().sort({"_id":-1})

//查询年龄最大的
db.aotu.find({},{"name":1,"_id":0}).sort({"age":-1}).limit(1)
//查询年龄最小的
db.aotu.find({},{"name":1}).sort({"age":1}).limit(1)

 

运算符

//$group:分组的条件
//_id:表示分组的字段
//年龄总和:表示结果的字段名
//$sum:求和表达式
//$age:代表要求和的字段名
db.aotu.aggregate([{'$group':{"_id":1,"年龄总和":{"$sum":"$age"}}}])

//最大值:$max
db.aotu.aggregate([{"$group":{"_id":1,"最大值":{'$max':"$age"}}}])
//最小值:$min
db.aotu.aggregate([{"$group":{"_id":1,"最小值":{"$min":"$age"}}}])
//平均值:$avg
db.aotu.aggregate([{"$group":{"_id":1,"平均数":{"$avg":"$age"}}}])

模糊查询

//返回name字段中包含‘斯’的文档数据
db.aotu.find({"name":/斯/})
//返回name字段中以‘梦’开头的文档数据
db.aotu.find({"name":/^梦/})

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值