麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 操作系統 > 正文

mongodb維護常用命令

2024-06-28 16:01:55
字體:
來源:轉載
供稿:網友
一,用戶操作:1. #進入數據庫adminuse admin2. #增加或修改用戶密碼db.addUser('name','pwd')3. #查看用戶列表db.system.users.find()4. #用戶認證db.auth('name','pwd')5. #刪除用戶db.removeUser('name')6. #查看所有用戶show users7. #查看所有數據庫show dbs8. #查看所有的collectionshow collections9. #查看各collection的狀態db.PRintCollectionStats()10. #查看主從復制狀態db.printReplicationInfo()11. #修復數據庫db.repairDatabase()12. #設置記錄profiling,0=off 1=slow 2=alldb.setProfilingLevel(1)13. #查看profilingshow profile14. #拷貝數據庫db.copyDatabase('mail_addr','mail_addr_tmp')15. #刪除collectiondb.mail_addr.drop()16. #刪除當前的數據庫db.dropDatabase()17. 備份數據庫mongodump -h localhost:27017 -d dataname -o /data/dump18. 恢復數據庫mongorestore -d dataname /data/dump19. 備份數據庫表mongodump -h localhost:27017 -d dataname -c tablename -o /data/dump20. 恢復數據庫表mongorestore -d dataname -c tablename /data/dumpmongorestore -h host:port -d dataname --collection tablename ./tmpdump/some.bson          二,數據操作: 1. #存儲嵌套的對象db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})2. #存儲數組對象db.user_addr.save({'Uid':'[email protected]','Al':['[email protected]','[email protected]']})3. #根據query條件修改,如果不存在則插入,允許修改多條記錄db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)4. #刪除yy=5的記錄db.foo.remove({'yy':5})5. #刪除所有的記錄db.foo.remove()6. #增加索引:1(ascending),-1(descending)7. db.foo.ensureIndex({firstname: 1, lastname: 1}, {unique: true});8. #索引子對象9. db.user_addr.ensureIndex({'Al.Em': 1})10. #查看索引信息11. db.foo.getIndexes()12. db.foo.getIndexKeys()13. #根據索引名刪除索引14. db.user_addr.dropIndex('Al.Em_1')三,查詢操作:1. #查找所有2. db.foo.find()3. #查找一條記錄4. db.foo.findOne()5. #根據條件檢索10條記錄6. db.foo.find({'msg':'Hello 1'}).limit(10)7. #sort排序8. db.deliver_status.find({'From':'[email protected]'}).sort({'Dt',-1})9. db.deliver_status.find().sort({'Ct':-1}).limit(1)10. #count操作11. db.user_addr.count()12. #distinct操作,查詢指定列,去重復13. db.foo.distinct('msg')14. #”>=”操作15. db.foo.find({"timestamp": {"$gte" : 2}})16. #子對象的查找17. db.foo.find({'address.city':'beijing'})條件操作符 $gt : > $lt : < $gte: >= $lte: <= $ne : !=、<> $in : in $nin: not in $all: all $not: 反匹配(1.3.3及以上版本)查詢 name <> "bruce" and age >= 18 的數據 db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}});查詢 creation_date > '2010-01-01' and creation_date <= '2010-12-31' 的數據 db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)});查詢 age in (20,22,24,26) 的數據 db.users.find({age: {$in: [20,22,24,26]}});查詢 age取模10等于0 的數據 db.users.find('this.age % 10 == 0'); 或者 db.users.find({age : {$mod : [10, 0]}});匹配所有 db.users.find({favorite_number : {$all : [6, 8]}}); 可以查詢出{name: 'David', age: 26, favorite_number: [ 6, 8, 9 ] } 可以不查詢出{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }查詢不匹配name=B*帶頭的記錄 db.users.find({name: {$not: /^B.*/}}); 查詢 age取模10不等于0 的數據 db.users.find({age : {$not: {$mod : [10, 0]}}});#返回部分字段 選擇返回age和_id字段(_id字段總是會被返回) db.users.find({}, {age:1}); db.users.find({}, {age:3}); db.users.find({}, {age:true}); db.users.find({ name : "bruce" }, {age:1}); 0為false, 非0為true選擇返回age、address和_id字段 db.users.find({ name : "bruce" }, {age:1, address:1});排除返回age、address和_id字段 db.users.find({}, {age:0, address:false}); db.users.find({ name : "bruce" }, {age:0, address:false});數組元素個數判斷 對于{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }記錄 匹配db.users.find({favorite_number: {$size: 3}}); 不匹配db.users.find({favorite_number: {$size: 2}});$exists判斷字段是否存在 查詢所有存在name字段的記錄 db.users.find({name: {$exists: true}}); 查詢所有不存在phone字段的記錄 db.users.find({phone: {$exists: false}});$type判斷字段類型 查詢所有name字段是字符類型的 db.users.find({name: {$type: 2}}); 查詢所有age字段是整型的 db.users.find({age: {$type: 16}});對于字符字段,可以使用正則表達式 查詢以字母b或者B帶頭的所有記錄 db.users.find({name: /^b.*/i});$elemMatch(1.3.1及以上版本) 為數組的字段中匹配其中某個元素javascript查詢和$where查詢 查詢 age > 18 的記錄,以下查詢都一樣 db.users.find({age: {$gt: 18}}); db.users.find({$where: "this.age > 18"}); db.users.find("this.age > 18"); f = function() {return this.age > 18} db.users.find(f);排序sort() 以年齡升序asc db.users.find().sort({age: 1}); 以年齡降序desc db.users.find().sort({age: -1});限制返回記錄數量limit() 返回5條記錄 db.users.find().limit(5); 返回3條記錄并打印信息 db.users.find().limit(3).forEach(function(user) {print('my age is ' + user.age)}); 結果 my age is 18 my age is 19 my age is 20限制返回記錄的開始點skip() 從第3條記錄開始,返回5條記錄(limit 3, 5) db.users.find().skip(3).limit(5);查詢記錄條數count() db.users.find().count(); db.users.find({age:18}).count(); 以下返回的不是5,而是user表中所有的記錄數量 db.users.find().skip(10).limit(5).count(); 如果要返回限制之后的記錄數量,要使用count(true)或者count(非0) db.users.find().skip(10).limit(5).count(true);分組group() 假設test表只有以下一條數據 { domain: "www.mongodb.org" , invoked_at: {d:"2009-11-03", t:"17:14:05"} , response_time: 0.05 , http_action: "GET /display/DOCS/Aggregation" } 使用group統計test表11月份的數據count:count(*)、total_time:sum(response_time)、avg_time:total_time/count; db.test.group( { cond: {"invoked_at.d": {$gt: "2009-11", $lt: "2009-12"}} , key: {http_action: true} , initial: {count: 0, total_time:0} , reduce: function(doc, out){ out.count++; out.total_time+=doc.response_time } , finalize: function(out){ out.avg_time = out.total_time / out.count } } );[ { "http_action" : "GET /display/DOCS/Aggregation", "count" : 1, "total_time" : 0.05, "avg_time" : 0.05 } ]四:日常維護管理:1. #查看collection數據的大小  db.deliver_status.dataSize()2#查看colleciont狀態  db.deliver_status.stats()3. #查詢所有索引的大小  db.deliver_status.totalIndexSize()五,mongodb服務維護需知:1,mongod 參數說明--dbpath            #指定db文件存放的目錄--port              #指定mongod服務使用的端口--fork              #設置mongo服務為后臺運行--logpath           #指定log文件的目錄和文件名--logappend         #設置每次log添加在文件最后--rest              #關閉rest api功能--nohttpinterface   #關閉web管理功能--auth              #指定mongo使用身份驗證機制--bindip            #用逗號分隔ip地址,用來指定--f                 #將所有前面介紹的參數都可以存放到一個配置文件中,然后用這個參數調用配置文件來啟動2,mongodb 關閉方法:a. db.shutdownServer()  #推薦優先使用b. ctrl + c             #在不使用 --fork參數的時候可以使用,可能會造成數據文件損壞c. kill / kill -2       #在無法使用 a和b的情況下使用,可能會造成數據文件損壞d. kill -9              #不在萬不得已的情況下,不要使用這個方法3. 查看MongoDB狀態a.db.runCommand({"serverStatus":1})b.MONGO_HOME/bin/mongostat4. 添加用戶,切換用戶 使 --auth參數起效db.addUser("root","123")db.addUser("read_only","123",true);  #第3個參數表示設置readonly的狀態db.auth("read_only","123")5. 數據庫備份有4種方法備份數據庫a. 關閉mongod服務后,復制--dbpath參數指定的數據文件。優點速度快,缺點需要停止mongo服務。b. 使用mongodump 導出數據,并用mongorestore 導入數據。優點不需要停止mongo服務,缺點在mongodump操作時用戶插入的數據可能無法備份出來。c. fsync and lock鎖定數據庫的讓用戶只能使用read功能,再使用方法b導出并導入數據。優點不需要停止mongo服務,缺點在數據庫lock期間用戶無法執行insert操作。d. 使用slaveDB并且 使用方法c鎖定slaveDB,再使用方法b導出并導入數據。優點不需要停止mongo服務,不會影響用戶insert操作(推薦使用此方法)。6. 修復數據庫當數據庫文件遭到損壞的時候有3種方法修復數據文件a. MONGO_HOME/bin/mongod --repairb. use testdb.repairDatabase()c. db.runCommand({"repairDatabase":1});7.MongoDB會以令人震驚的方式丟失數據這里 http://coolshell.cn/articles/5826.html 有詳解,值得關注一下.六,mongodb分布式集群操作查看集群分片信息db.printShardingStatus()
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美1区2区在线观看 | 亚洲一区二区三区在线免费观看 | 亚洲精品久久久久久下一站 | 精品在线视频播放 | 成人aaaaa片毛片按摩 | 欧美视频一区二区 | 欧美成人激情在线 | 天堂福利电影 | 成人午夜视频免费 | 成人毛片在线 | 一本色道精品久久一区二区三区 | 久久久久久久久成人 | videos高潮| 92看片淫黄大片欧美看国产片 | 成人在线不卡 | 久久不射电影 | 美女污污视频在线观看 | 欧美女优一区 | 国产免费高清 | 亚洲草逼视频 | 91社 | 91精品国产日韩91久久久久久360 | 91看片在线观看视频 | 久久久久国| 91久久久久 | 成人不卡免费视频 | 久久久久一区二区三区 | 国产精品99久久99久久久二 | 国产午夜免费不卡精品理论片 | h视频免费看 | 欧美成人综合视频 | 欧美久久久一区二区三区 | 欧美性生交大片 | 91aa.app| 亚洲伊人色欲综合网 | 日日综合| 国内精品国产三级国产a久久 | 色视频在线播放 | 欧美成年私人网站 | 国产精品麻豆一区二区三区 | 久草在线资源视频 |