亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

MongoDB使用小結 一些常用操作分享

2020-10-29 18:47:16
字體:
來源:轉載
供稿:網友

MongoDB的使用之前也分享過一篇,稍微高階點:見這里:《MongoDB使用小結》

1、shell登陸和顯示

假設在本機上有一個端口為17380的MongoDB服務,假設已經把mongo bin文件加入到系統PATH下。

登陸:mongo --port 17380

顯示DB:show dbs

進入某DB:use test_cswuyg

顯示集合:show tables

2、簡單查找
查找文檔:db.test_mac_id.find({'a': 'b'})

刪除文檔:db.test_mac_id.remove({'a': 'b'})

查找找到某一天的數據:

db.a.find({'D' : ISODate('2014-04-21T00:00:00Z')}) 或者 db.a.find({'D' : ISODate('2014-04-21')})

刪除某一天的數據:

db.region_mac_id_result.remove({"D" : ISODate('2014-04-17')})

小于2014.6.5的數據:

db.xxx.find({E: {$lt :ISODate('2014-06-05')}})

大于等于2014.6.1的數據:

db.xxx.find({E: {$gte: ISODate("2014-05-29")}}).count()

兩個條件:

db.xxx.find({E:{$gte: ISODate("2014-05-29"), $lte: ISODate("2014-06-04")}}).count()

json中的嵌套對象查詢,采用“點”的方式:

mongos> db.wyg.find({"a.b": {$exists: true}})

{ "_id" : "c", "a" : { "b" : 10 } }

某個字段存在,且小于1000有多少:

db.stat.find({_: ISODate("2014-06-17"), "123": {$exists: 1, $lte: 1000}}, {"123": 1}).count()

3、存在和遍歷統計
存在'i': 1,且存在old_id字段:

mongos> var it = db.test.find({'i': 1, "old_id": {$exists: 1}})

遍歷計數1:mongos> var count = 0;while(it.hasNext()){if (it.next()["X"].length==32)++count}print(count)

遍歷計數2:mongos> var count = 0;while(it.hasNext()){var item = it.next(); if (item['X'].length==32 && item['_id'] != item['X'])++count;if(!item['X'])++count;}print(count)

4、插入和更新
> db.test.findOne({_id: 'cswuyg'})

null

> db.test.insert({'_id': 'cswuyg', 'super_admin': true})

> db.test.findOne({'_id': 'cswuyg'})

{

"_id" : "cswuyg",

"super_admin" : true

}

db.test.update({'_id': 'cswuyg'}, {$set: {'super_admin': true}})

5、repair 操作
對某個DB執行repair:進入要repair的db,執行db.repairDatabase()

對mongodb整個實例執行repair:numactl --interleave=all /mongod --repair --dbpath=/home/disk1/mongodata/shard/

6、mongodb任務操作
停止某個操作:

[xxx]$ mongo --port 17380MongoDB shell version: 2.4.5connecting to: 127.0.0.1:17380/testmongos> db.currentOp(){ "inprog" : [ ...] }mongos> db.killOp("shard0001:163415563")

批量停止:

db.currentOp().inprog.forEach(function(item){db.killOp(item.opid)})
當查詢超過1000秒的,停止:

db.currentOp().inprog.forEach(function(item){if(item.secs_running > 1000 )db.killOp(item.opid)})
停止某個數據源的查詢:

db.currentOp().inprog.forEach(function(item){if(item.ns == "cswuyg.cswuyg")db.killOp(item.opid)})
把所有在等待鎖的操作顯示出來:

db.currentOp().inprog.forEach(function(item){if(item.waitingForLock)print(JSON.stringify(item))})
把處于等待中的分片顯示出來:

db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){print(item.opid.substr(0,9));print(item.op);}})
把非等待的分片顯示出來:

db.currentOp().inprog.forEach(function(item){if(!item.waitingForLock){var lock_info = item["opid"];print(lock_info.substr(0,9));print(item["op"]);}})
查找所有的查詢任務:

db.currentOp().inprog.forEach(function(item){if(item.op=="query"){print(item.opid);}})
查找所有的非查詢任務:

db.currentOp().inprog.forEach(function(item){if(item.op!="query"){print(item.opid);}})
查找所有的操作:

db.currentOp().inprog.forEach(function(item){print(item.op, item.opid);});
常用js腳本,可直接復制到mongo-shell下使用:

顯示當前所有的任務狀態:

print("##########");db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){var lock_info = item["opid"];print("waiting:",lock_info,item.op,item.ns);}});print("----");db.currentOp().inprog.forEach(function(item){if(!item.waitingForLock){var lock_info = item["opid"];print("doing",lock_info,item.op,item.ns);}});print("##########");

殺掉某些特定任務:

(1)

db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){var lock_info = item["opid"];if(item.op=="query" && item.secs_running >60 && item.ns=="cswuyg.cswuyg"){db.killOp(item.opid)}}})
(2)

db.currentOp().inprog.forEach(function(item) { var lock_info = item["opid"]; if (item.op == "query" && item.secs_running > 1000) { print("kill", item.opid); db.killOp(item.opid) }})

7、刪除并返回數據
old_item = db.swuyg.findAndModify({query: {"_id": "aabbccdd"}, fields:{"D": 1,'E':1, 'F':1}, remove: true})

fields里面為1的是要返回的數據。

8、分布式集群部署情況
(1) 細致到collection的顯示:sh.status()

(2)僅顯示分片:

use config; db.shards.find()

{ "_id" : "shard0000", "host" : "xxhost:10001" }

{ "_id" : "shard0001", "host" : "yyhost:10002" }

....

(3)

use admin

db.runCommand({listshards: 1})

列出所有的shard server

9、正則表達式查找
正則表達式查詢:
mongos> db.a.find({"tt": /t*/i})
{ "_id" : ObjectId("54b21e0f570cb10de814f86b"), "aa" : "1", "tt" : "tt" }
其中i表明是否是case-insensitive,有i則表示忽略大小寫

db.testing.find({"name":/[7-9]/})

當name的值為789這幾個數字組成的字符串時,查詢命中。

10、查詢性能
db.testing.find({name: 123}).explain()

輸出結果:

{  "cursor" : "BasicCursor",  "isMultiKey" : false,  "n" : 1,  "nscannedObjects" : 10,  "nscanned" : 10,  "nscannedObjectsAllPlans" : 10,  "nscannedAllPlans" : 10,  "scanAndOrder" : false,  "indexOnly" : false,  "nYields" : 0,  "nChunkSkips" : 0,  "millis" : 0,  "indexBounds" : {  },  "server" : "xxx:10001"}

11、更新或插入
當該key不存在的時候執行插入操作,當存在的時候則不管,可以使用setOnInsert

db.wyg.update({'_id': 'id'}, {'$setOnInsert': {'a': 'a'}, '$set': {'b': 'b'}}, true)

當id存在的時候,忽略setOnInsert。

當id存在的時候,如果要插入,則插入{'a': 'a'}

最后的參數true,則是指明,當update不存在的_id時,執行插入操作。默認是false,只更新,不插入。

push、setOnInsert:db.cswuyg.update({"_id": "abc"}, {$push: {"name": "c"}, $setOnInsert: {"cc":"xx"}}, true)

12、計算DB中collection的數量
db.system.namespaces.count()

13、增加數字,采用$inc
db.cswuyg.update({"a.b": {$exists: true}}, {$inc: {'a.b': 2}})

也就是對象a.b的值,增加了2

注意$inc只能用于數值。

14、刪除某個key
db.cswuyg.update({'_id': 'c'}, {$unset: {'b': {$exists: true}}})

{ "_id" : "c", "a" : { "b" : 12 }, "b" : 7 }

轉變為:

{ "_id" : "c", "a" : { "b" : 12 } }

15、增加key:value
db.cswuyg.update({'_id': 'z'}, {'$set': {'hello': 'z'}})

{ "_id" : "z", "b" : 1 }

轉變為:

{ "_id" : "z", "b" : 1, "hello" : "z" }

16、刪除數據庫、刪除表
刪除數據庫:db.dropDatabase();

刪除表:db.mytable.drop();

17、查找到數據只看某列
只顯示key名為D的數據:db.test.find({}, {D: 1})

18、查看分片存儲情況
(1)所有DB的分片存儲信息,包括chunks數、shard key信息:db.printShardingStatus()

(2)db.collection.getShardDistribution() 獲取collection各個分片的數據存儲情況

(3)sh.status() 顯示本mongos集群所有DB的信息, 包含了Shard Key信息

19、查看collection的索引
db.cswuyg.getIndexes()

20、開啟某collection的分片功能
1. ./bin/mongo 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

日韩高清人体午夜| 国产精品自拍小视频| 亚洲电影在线看| 日韩精品福利网站| 亚洲国产日韩欧美在线动漫| 久久精品亚洲国产| 青草青草久热精品视频在线网站| 国产一区二区激情| 亚洲男人第一网站| 97国产精品视频人人做人人爱| 亚洲性无码av在线| 国产精品永久免费视频| 国产精品户外野外| 久久精品国产精品亚洲| 成人国产精品一区二区| 久久五月情影视| 国产成人一区二区| 国产精品高精视频免费| 青青久久av北条麻妃海外网| 国产精品视频在线观看| 国产在线视频不卡| 欧美成人精品激情在线观看| 亚洲欧美国产视频| 人人澡人人澡人人看欧美| 95av在线视频| 91精品久久久久久久久久入口| 美女啪啪无遮挡免费久久网站| 欧美日韩在线观看视频小说| 日韩不卡在线观看| 欧美日韩亚洲国产一区| 国产精品青青在线观看爽香蕉| 久久99精品国产99久久6尤物| 国产精品丝袜久久久久久高清| 久热精品视频在线观看| 久久久99免费视频| 久久人人爽国产| 欧美高清无遮挡| 色妞欧美日韩在线| 午夜剧场成人观在线视频免费观看| 亚洲最新av在线网站| 97国产精品人人爽人人做| 国产剧情日韩欧美| 亚洲自拍欧美另类| 国产亚洲xxx| 亚洲a区在线视频| 欧美成人精品xxx| 欧美专区中文字幕| 欧美日韩国产999| 91免费高清视频| 欧美激情按摩在线| 成人乱人伦精品视频在线观看| 欧美一区二区.| 中文字幕日韩在线播放| 5566成人精品视频免费| 激情懂色av一区av二区av| 中文字幕日韩精品在线观看| 久久久久久久香蕉网| 中文字幕无线精品亚洲乱码一区| 欧美整片在线观看| 欧美成人四级hd版| 在线观看日韩www视频免费| 欧美一级淫片aaaaaaa视频| 亚洲成人在线视频播放| 综合136福利视频在线| 久久全球大尺度高清视频| 欧美激情网友自拍| 日韩视频精品在线| 蜜月aⅴ免费一区二区三区| 日韩精品极品毛片系列视频| 成人国产精品一区| 尤物99国产成人精品视频| 69国产精品成人在线播放| 中文字幕亚洲一区| 91欧美激情另类亚洲| 国产精品麻豆va在线播放| 日韩国产欧美精品一区二区三区| 国产综合久久久久| 久久久久久久久电影| 亚洲精品www久久久久久广东| 91成人精品网站| 国产精品福利网站| 久久综合久中文字幕青草| 国产成人精品一区二区三区| 久久成人这里只有精品| 亚洲欧美色婷婷| 亚洲视频欧美视频| 美女精品久久久| 欧美日韩国产页| 亚洲国产97在线精品一区| 中文字幕精品网| 欧美成人亚洲成人| 欧美成人在线免费| 久久中国妇女中文字幕| 国产精品91免费在线| 97视频在线观看成人| 成人免费观看49www在线观看| 久久精品成人一区二区三区| 57pao成人永久免费视频| 亚洲男人天堂2019| 欧美黄色三级网站| 在线观看精品国产视频| 欧美乱大交xxxxx另类电影| 国产精品一区专区欧美日韩| 国产精品网站入口| 欧美在线一区二区三区四| 亚洲欧美国内爽妇网| 日韩精品免费在线视频观看| 亚洲白拍色综合图区| 国产在线视频91| 国产精品高潮呻吟久久av无限| 91po在线观看91精品国产性色| 日韩电影中文字幕一区| 国产99久久精品一区二区永久免费| 色噜噜国产精品视频一区二区| 国产一区二区丝袜高跟鞋图片| 性欧美暴力猛交69hd| 91手机视频在线观看| 高清一区二区三区日本久| 欧美性一区二区三区| 日韩av在线导航| 欧美巨猛xxxx猛交黑人97人| 久久久精品视频成人| 日韩中文综合网| 日韩av在线电影网| 亚洲无限av看| 国产精品igao视频| 国内精品免费午夜毛片| 色播久久人人爽人人爽人人片视av| 欧美高清视频一区二区| 欧美久久精品一级黑人c片| 日韩av在线影院| 欧美激情久久久| 亚洲毛片在线观看| 欧美第一黄色网| 中文字幕欧美日韩精品| 日韩在线播放av| 久久青草福利网站| 91免费国产视频| 国产精品美女www爽爽爽视频| 国产偷亚洲偷欧美偷精品| 亚洲欧美一区二区精品久久久| 亚洲一区精品电影| 久久这里只有精品99| 国产精品天天狠天天看| 日本成人激情视频| 欧美乱大交xxxxx另类电影| 久久九九免费视频| 北条麻妃99精品青青久久| 中国china体内裑精亚洲片| 欧美精品在线播放| 国产精品久久久久久中文字| 日韩欧美精品网站| 国产伊人精品在线| 久久久久久网址| 国产精品视频免费在线观看| 久久精品国产欧美亚洲人人爽| 亚洲福利视频久久| 成人黄在线观看| 在线午夜精品自拍| 亚洲精品成人网| 国产精品爽黄69| 国产精品草莓在线免费观看| 国模精品系列视频| 国产又爽又黄的激情精品视频|