mongodb常用命令

整体备份mongodb
./mongodump -h <hostname><:port> -u 'username' -p 'password' -d <dbname> -o <path>

整体恢复:
mongorestore -h <hostname><:port> -d dbname <path>

集合(单表) 备份
./mongoexport -h <hostname><:port> -u 'username' -p 'password' -d <dbname> -c <Collection> -o <path>

单表写入
./mongoimport -h <hostname> -p <port> -u 'username' -p 'password' --db <dbname> -c <Collection> --file <path>

后台启动('/usr/local/mongodb/'是mongodb安装目录):
./mongod --auth --fork --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb.log --logappend

1、排序:按照某字段倒序查询
db.getCollection('Collection').find().sort({"字段":-1})

2、求总数
db.getCollection('Collection').find().count()

3、分页查询:从第10条开始查询10条数据
db.getCollection('Collection').find().limit(10).skip(10)

4、时间条件查询
db.getCollection('Collection').find({"字段":{"$gte": "时间起","$lt":"时间止"}})

5、模糊查询:查询出字段里面含有G的数据
db.getCollection('Collection').find({"字段":{"$regex":"G"})

6、批量更新字段(新增字段):批量更新为null的字段修改为0
db.getCollection('Collection').update({"字段":{$in:[null]}},{$set: {"字段":"0"}}, {multi: true});

7、mongodb分组个数过滤(查询有两个一样的手机号的账号)
db.getCollection('Collection').aggregate([{ $group : { _id : {mobile:"$mobile"}, count: { $sum: 1 } } },{$match:{count:{$gt:1}}}])

8、mongodb先分组、再匹配、再求和(查询出同一个手机号被两个账号绑定的用户的数量)
db.getCollection('Collection').aggregate([{ $group : { _id : {mobile:"$mobile"}, count: { $sum: 1 } } },{$match:{count:{$eq:2}}},{$group : {_id : {mobile:"$mobile"}, count : {$sum : "$count"}}}])

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。