pymongo

  1. whois_dict = Mongo.coll['dirUrl'].find({"$or":[{"URL":{"$regex":"com"}},{"URL":{"$regex":"sh"}}]})
  2. #模糊查询
  3. query = Mongo.coll['dirUrl'].find({"URL": {"$regex": "com"}})
  4. #多个模糊查询
  5. query = Mongo.coll['dirUrl'].find({"URL": {"$regex": "com|sh"}})
  6. #过滤字段
  7. query = Mongo.coll['dirUrl'].find({}, {"_id":0, "key": 1})
  8. #时间范围查询
  9. query = Mongo.coll['dirUrl'].find({"URL": {"$gte": "2017-04-25"}})
  10. query = Mongo.coll['dirUrl'].find({"URL": {"$gte": "2017-04-25", "$lt": "2017-04-26"}})

[ Mongodb ] 全量备份和增量备份

https://www.cnblogs.com/hukey/p/11512062.html

MongoDB分布式集群搭建(副本集+分片集群)、数据备份与恢复

https://blog.csdn.net/Powerful_Fy/article/details/103615902

  1. https://docs.mongodb.com/v4.2/reference/program/mongodump/
  2. time mongodump --host="localhost:27019" --readPreference=secondary -d db -c collection -q '{"data_date":{"$gt":"2021-01-01"}}' -o /dump/mongodb/tmp
  3. ## 备份指定库
  4. mongodump --port 20000 -d db1 -o /tmp/mongobak
  5. ls /tmp/mongobak
  6. ## 备份指定集合
  7. mongodump --port 20000 -d db1 -c cl01 -o /tmp/mongobak
  8. ## 备份所有库
  9. mongodump --port 20000 -o /tmp/mongobak
  10. ## 导出集合为josn
  11. mongoexport --port 20000 -d db1 -c cl01 -o /tmp/cl01.json
  12. head -5 /tmp/cl01.json
  13. ## 恢复所有库
  14. mongorestore --port 20000 --drop /tmp/mongobak/
  15. ## 恢复指定库
  16. mongorestore --port 20000 -d db1 /tmp/mongobak/db1/
  17. ## 恢复指定集合
  18. mongorestore --port 20000 -d db1 -c cl01 /tmp/mongobak/db1/cl01.bson
  19. ## 将json文件的数据导入集合
  20. mongoimport --port 20000 -d db1 -c cl01 --file /tmp/cl01.json

Mongodb副本集+分片集群环境部署

https://www.cnblogs.com/nulige/p/7613725.html
image.png

mongoDB中分片与复制(副本集)的关系

https://blog.csdn.net/baidu_36095053/article/details/80192239
image.png

阿里云数据库MongoDB版清理oplog日志和compact命令详解
https://www.cnblogs.com/Sungeek/p/12022625.html

MongoDB高可用集群+MMS集群监控搭建

https://blog.csdn.net/silentwolfyh/article/details/54136867
image.png

随我来使用mongodb mms服务

http://www.ttlsa.com/mms/follow-me-to-use-mongodb-mms-services/

rs.reconfig()

https://docs.mongodb.com/manual/reference/replica-configuration/

mongo慢日志

开启慢日志

  1. # 为所有数据库开启慢查询记录
  2. db.setProfilingLevel(2)
  3. # 指定数据库,并指定阈值慢查询 ,超过20毫秒的查询被记录
  4. use testdb.setProfilingLevel(1, { slowms: 20 })
  5. # 随机采集慢查询的百分比值,sampleRate 值默认为1,表示都采集,0.42 表示采集42%的内容。
  6. db.setProfilingLevel(1, { sampleRate: 0.42 })
  7. # 查询慢查询级别和其它信息
  8. db.getProfilingStatus()
  9. # 仅返回慢查询级别
  10. db.getProfilingLevel()
  11. # 禁用慢查询
  12. db.setProfilingLevel(0)
  13. 参考链接:https://www.jianshu.com/p/27775ae48f29

获取慢日志

  1. # 查询最近的10个慢查询日志
  2. db.system.profile.find().limit(10).sort( { ts : -1 } ).pretty()
  3. # 查询除命令类型为'command'的日志
  4. db.system.profile.find( { op: { $ne : 'command' } } ).pretty()
  5. # 查询数据库为 mydb 集合为 test 的 日志
  6. db.system.profile.find( { ns : 'mydb.test' } ).pretty()
  7. # 查询 低于5毫秒的日志
  8. db.system.profile.find( { millis : { $gt : 5 } } ).pretty()
  9. # 查询时间从 2012-12-09 3点整到 2012-12-09 3点40分之间的日志
  10. db.system.profile.find({ts : {$gt: new ISODate("2012-12-09T03:00:00Z"), $lt: new ISODate("2012-12-09T03:40:00Z")}}).pretty()
  11. ## 命令行获取mongo慢日志
  12. mongo -h xxx -p 27017 dbname --eval "db.system.profile.find().limit(200)"
  13. ## 命令行获取正在执行的操作
  14. mongo --eval "db.currentOp()"

mongo日志级别

  1. # 查询日志详细等级的命令
  2. db.getLogComponents()
  3. # 修改日志详细等级
  4. db.adminCommand({ setParameter: 1, logComponentVerbosity: { verbosity: 1, query: { verbosity: 2}}})
  5. # 恢复原级别
  6. db.adminCommand({ setParameter: 0, logComponentVerbosity: { verbosity: 0, query: { verbosity:-1}}})
  7. 参考链接:https://blog.csdn.net/sinat_41780498/article/details/106124417