整体备份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"}}}])