1、mongo库备份与恢复:
(1)mongodump与mongorestore
docker exec -i mongo mongodump -h IP:27017 -u watrix -p watrix888 --authenticationDatabase admin --db Darwin-XYY --archive -o dbdirectory
docker exec -i mongo mongorestore -u watrix -p watrix888 -h IP:27017 --authenticationDatabase admin -d Darwin-XYY Darwin-XYY.archive
(2)mongoexport与mongoimport
mongoexport --host IP --port number --username admin --password FbQad6Ad6bV44 --collection eastmoney_lift --db bloom_filter --authenticationDatabase admin --out eastmoney_lift.json
mongoimport --host IP --port number --username admin --password FbQad6Ad6bV44 --collection eastmoney_lift --db bloom_filter --authenticationDatabase admin --file eastmoney_lift.json
优缺点:
备份方面比较:
1、mongoexport 可以指定集合中的字段, mongodump最多到集合
2、mongoexport 可以带导出的过滤条件 -q, mongodump则不可以
3、mongoexport 可以导出json和csv格式, mongodump导出的是bson可读性不如前者
4、mongodump 的速度和压缩率都最好,每秒125M的数据,压缩率达28%
5、mongodump 更适合全库备份,mongoexport更适合单个集合备份
恢复方面比较:
1、mongoimport 速度较快,但不保证数据完整导入 。
2、mongorestore 速度较慢,比mongoimport慢2.5倍左右,但是根据mongodump导出的数据,可以完整导入数据
2、mongo更改密码
(1)修改密码:
use admin
db.changeUserPassword('用户名','新密码');
db.auth('用户名','新密码');
(2)密码忘记:
vi /etc/mongod.conf
注释掉:
#security
#authorization: enabled
重启mongo即可。
(3)创建用户
db.createUser({user:'userName',pwd:'passWord',roles:[{"role":"root","db":"admin"}]});
3、mongo查询语句
db.表名.find({}) 表示查询所有记录
db.getCollection('表名').find({字段名:'值'})
db.表名.find({uid:"12"}) 表示查询uid="12"的记录
db.表名.find({uid:"12"},{"uid":1,"uname":1,"_id":0}) 表示查询表中uid="12"的所有记录,返回字段为uid,uname两个字段"_id"不返回
db.表名.find({$or:[{"name":"sulin"},{"age":{"$gt":10}}]})
db.test.find({$where:function(){return this.age>10}})
查询条件:
$lt,$lte,$gt,$gte,$ne,$in,$nin,$or < <= > >= ≠ 在 不在 或
db.users.find({cid:{"$gt":"12","$lte":"15"}}) 查询表中cid>12 and cid<=15的所有记录
增insert
删remove
改update