mongodb常用命令

文档网址

https://docs.mongodb.com/manual/indexes/index.html

登录

./mongo ip:port
use admin
db.auth(“admin”,“12345”)
use humanDataBase
db.human.find()

按条件查询

db.human.find({"born_time":{"$gte":ISODate("2000-07-01T00:00:00Z"),"$lte": ISODate("2019-10-09T08:38:38Z")},"gender":1} ).count()

解释:
查询出生日期大于2000-07-01T00:00:00Z的男孩的人数

查询某个字段最小(最大)的记录

常用于查找数据中时间字段

db.human.find({},{born_time:1}).sort({born_time:1}).limit(10)

解释:
find({},{born_time:1}):在human集合不进行条件过滤,只返回born_time字段(0为排除该字段)
sort({born_time:1}):born_time字段升序排序(-1为降序)
limit(10):返回条数为10

对某个字段分组

db.human.aggregate([{"$group":{"_id":"$age",“count”:{"$sum":1}}}])
解释:
对human集合按照年龄进行分组,得到每个年龄的人数

根据时间字段分组

db.human.aggregate([{"$group":{"_id":{“year”:{"$year":"$born_time"},“month”:{"$month":"$born_time"},“day”:{"$dayOfMonth":"$born_time"}},“count”:{"$sum":1}}}])

解释:
对human集合按照出生日期进行聚合分组,得到每天出生的人数
$dayOfMonth:以1到31之间的数字返回日期的日;
$month:以1到12之间的数字返回日期的月份;
$year:返回日期的年份;

注:
有时聚合操作可能会报错
原因是聚合的结果必须要限制在16M以内操作,(mongodb支持的最大影响信息的大小),否则必须放在磁盘中做缓存 (allowDiskUse=True)

mongos> db.getCollection('xxx').aggregate([{$group:{_id:{"id":"$xx","name":"$yy"},count:{$sum:1}}},{$match:{count:{$gt:1}}}],{ allowDiskUse: true })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值