mongodb常用命令

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

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

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

单表写入
./mongoimport -h -p -u 'username' -p 'password' --db -c --file

后台启动('/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"}}}])

你可能感兴趣的:(mongodb常用命令)