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

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

淺談MongoDB中的常用操作,你都知道多少?

2024-09-07 00:22:34
字體:
供稿:網(wǎng)友
       這篇文章給大家分享的是有關(guān)MongoDB中的常用操作的內(nèi)容,小編覺得挺實用的,因此分享給大家做個參考。下文整理了很多MongoDB操作技巧,感興趣的朋友接下來一起跟隨小編看看吧。
 
       1、shell登陸和顯示
 
       假設(shè)在本機上有一個端口為17380的MongoDB服務(wù),假設(shè)已經(jīng)把mongo bin文件加入到系統(tǒng)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'})
 
    查找找到某一天的數(shù)據(jù):
 
    db.a.find({'D' : ISODate('2014-04-21T00:00:00Z')}) 或者 db.a.find({'D' : ISODate('2014-04-21')})
 
    刪除某一天的數(shù)據(jù):
 
    db.region_mac_id_result.remove({"D" : ISODate('2014-04-17')})
 
    小于2014.6.5的數(shù)據(jù):
 
    db.xxx.find({E: {$lt :ISODate('2014-06-05')}})
 
    大于等于2014.6.1的數(shù)據(jù):
 
    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、存在和遍歷統(tǒng)計
    存在'i': 1,且存在old_id字段:
 
    mongos> var it = db.test.find({'i': 1, "old_id": {$exists: 1}})
 
    遍歷計數(shù)1:mongos> var count = 0;while(it.hasNext()){if (it.next()["X"].length==32)++count}print(count)
 
    遍歷計數(shù)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執(zhí)行repair:進入要repair的db,執(zhí)行db.repairDatabase()
 
    對mongodb整個實例執(zhí)行repair:numactl --interleave=all /mongod --repair --dbpath=/home/disk1/mongodata/shard/
 
    6、mongodb任務(wù)操作
    停止某個操作:
 
[xxx]$ mongo --port 17380
MongoDB shell version: 2.4.5
connecting to: 127.0.0.1:17380/test
mongos> 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)})
    停止某個數(shù)據(jù)源的查詢:
 
    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))})
    把處于等待中的分片顯示出來:
 
     常用js腳本,可直接復(fù)制到mongo-shell下使用:
 
    顯示當前所有的任務(wù)狀態(tài):
 
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("##########");
    殺掉某些特定任務(wù):
 
    (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、刪除并返回數(shù)據(jù)
    old_item = db.swuyg.findAndModify({query: {"_id": "aabbccdd"}, fields:{"D": 1,'E':1, 'F':1}, remove: true})
 
    fields里面為1的是要返回的數(shù)據(jù)。
 
    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這幾個數(shù)字組成的字符串時,查詢命中。
 
    10、查詢性能
    db.testing.find({name: 123}).explain()
 
    輸出結(jié)果:
 
{
  "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不存在的時候執(zhí)行插入操作,當存在的時候則不管,可以使用setOnInsert
 
    db.wyg.update({'_id': 'id'}, {'$setOnInsert': {'a': 'a'}, '$set': {'b': 'b'}}, true)
 
    當id存在的時候,忽略setOnInsert。
 
    當id存在的時候,如果要插入,則插入{'a': 'a'}
 
    最后的參數(shù)true,則是指明,當update不存在的_id時,執(zhí)行插入操作。默認是false,只更新,不插入。
 
    push、setOnInsert:db.cswuyg.update({"_id": "abc"}, {$push: {"name": "c"}, $setOnInsert: {"cc":"xx"}}, true)
 
    12、計算DB中collection的數(shù)量
    db.system.namespaces.count()
 
    13、增加數(shù)字,采用$inc
    db.cswuyg.update({"a.b": {$exists: true}}, {$inc: {'a.b': 2}})
 
    也就是對象a.b的值,增加了2
 
    注意$inc只能用于數(shù)值。
 
    14、刪除某個key
    db.cswuyg.update({'_id': 'c'}, {$unset: {'b': {$exists: true}}})
 
    { "_id" : "c", "a" : { "b" : 12 }, "b" : 7 }
 
    轉(zhuǎn)變?yōu)椋?br /> 
    { "_id" : "c", "a" : { "b" : 12 } }
 
    15、增加key:value
    db.cswuyg.update({'_id': 'z'}, {'$set': {'hello': 'z'}})
 
    { "_id" : "z", "b" : 1 }
 
    轉(zhuǎn)變?yōu)椋?br /> 
    { "_id" : "z", "b" : 1, "hello" : "z" }
 
    16、刪除數(shù)據(jù)庫、刪除表
    刪除數(shù)據(jù)庫:db.dropDatabase();
 
    刪除表:db.mytable.drop();
 
    17、查找到數(shù)據(jù)只看某列
    只顯示key名為D的數(shù)據(jù):db.test.find({}, {D: 1})
 
    18、查看分片存儲情況
    (1)所有DB的分片存儲信息,包括chunks數(shù)、shard key信息:db.printShardingStatus()
 
    (2)db.collection.getShardDistribution() 獲取collection各個分片的數(shù)據(jù)存儲情況
 
    (3)sh.status() 顯示本mongos集群所有DB的信息, 包含了Shard Key信息
 
    19、查看collection的索引
    db.cswuyg.getIndexes()
 
    20、開啟某collection的分片功能
    1. ./bin/mongo -Cport 20000
 
    2. mongos> use admin
 
    3. switched to db admin
 
    4. mongos> db.runCommand({'enablesharding"' 'test'})
 
    5. { "ok" : 1 }
 
    開啟user collection分片功能:
 
    1. mongos> db.runCommand({'shardcollection': 'test.user', 'key': {'_id': 1}})
 
    { "collectionsharded" : "test.user", "ok" : 1 }
 
    21、判斷當前是否是shard集群
    isdbgrid:用來確認當前是否是 Sharding Cluster
 
> db.runCommand({isdbgrid:1});
是:
{ "isdbgrid" : 1, "hostname" : "xxxhost", "ok" : 1 }
不是:
{
  "ok" : 0,
  "errmsg" : "no such cmd: isdbgrid",
  "code" : 59,
  "bad cmd" : {
    "isdbgrid" : 1
  }
}
    22、dump DB
    mongodump支持從DB磁盤文件、運行中的MongoD服務(wù)中dump出bson數(shù)據(jù)文件。
 
    (1)關(guān)閉MongoD之后,從它的DB磁盤文件中dump出數(shù)據(jù)(注:僅限單實例mongod):
 
    mongodump --dbpath=/home/disk1/mongodata/shard/ -d cswuyg -o /home/disk2/mongodata/shard
 
    參考:
 
    http://docs.mongodb.org/manual/reference/program/mongodump/
 
    http://stackoverflow.com/questions/5191186/how-do-i-dump-data-for-a-given-date
 
    (2)從運行的MongoD中導(dǎo)出指定日期數(shù)據(jù),采用-q查詢參數(shù):
 
    mongodump -h xxxhost --port 17380 --db cswuyg --collection test -q "{D: {/$gte: {/$date: `date -d "20140410" +%s`000}, /$lt: {/$date: `date +%s`000}}}"
 
    mongodump -dbpath=/home/disk3/mongodb/data/shard1/ -d cswuyg -c test -o /home/disk9/mongodata/shard1_2/ -q "{_:{/$gte:{/$date:`date -d "20140916" +%s`000}, /$lt: {/$date: `date -d "20140918" +%s`000}}}"
 
    dump出來的bson文件去掉了索引、碎片空間,所有相比DB磁盤文件要小很多。

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
视频在线不卡免费观看| 亚洲一区二区三区在线观看视频| 黄色a级片免费看| 国产视频在线观看一区| 国产精品一区二区免费视频| 搡老女人一区二区三区视频tv| 国产不卡av在线| 国产一区日韩| 国产美女av一区二区三区| 国产日韩欧美日韩大片| 亚洲经典一区二区三区| 久久99性xxx老妇胖精品| 性生交大片免费看l| 成人嘿咻视频免费看| 亚洲区国产区| 久久激情久久| 激情图片中文字幕| 无码人妻少妇色欲av一区二区| 亚洲精品第一| 欧美高清性xxxxhdvideosex| 亚洲美女屁股眼交| 精品乱码一区内射人妻无码| 亚洲国产精久久久久久| 久久久久久久久久久久久久久久av| 激情偷拍久久| 国产sm在线观看| 亚洲国产激情一区二区三区| 欧美国产亚洲另类动漫| 永久免费看mv网站入口| 91九色蝌蚪国产| 中文字幕在线观看1| 草美女在线观看| 成人在线免费看片| 国产一区二区三区不卡在线| 成人一级片在线观看| 日韩av在线网站| 日本在线电影一区二区三区| 粉嫩av国产一区二区三区| 米奇四色影视| 国产日韩欧美综合一区| 日韩少妇高潮抽搐| 成人小视频免费看| 日韩影院一区二区| 欧美电影免费观看高清| 亚洲精华国产精华| 国产天堂在线播放视频| 国产偷激情在线| 国产精品久久久久影院亚瑟| 日韩中文影院| 在线欧美一区二区| 成人免费视频国产免费麻豆| 国模私拍视频在线播放| 另类小说第一页| 97在线观看视频| 不卡电影免费在线播放一区| 久久看人人爽人人| 国产又黄又粗又硬| 亚洲中文字幕无码一区| 久久久久99人妻一区二区三区| 涩涩视频在线免费看| 亚洲av无日韩毛片久久| www日本视频| 久久97人妻无码一区二区三区| 国产精品一区二区av影院萌芽| 后进极品白嫩翘臀在线播放| 久久久久久久久久成人| 日本国产一区二区三区| 一区三区自拍| 精品少妇一区二区三区密爱| 国产免费视频一区二区三区| 欧美夫妻性生活| 欧美**室bdsm视频| 国产精品2018| 日本三级视频在线播放| 亚洲欧洲激情在线| 欧美不卡视频一区| 国产九九热视频| 日韩国产成人无码av毛片| 国产精品v欧美精品v日本精品动漫| 国内一区二区三区在线视频| 国产精品入口麻豆电影| 国产精品揄拍100视频| 99超碰在线观看| 亚洲91视频| 国产精品网站视频| 国语产色综合| 俺来也官网欧美久久精品| 99riav1国产精品视频| 亚洲欧美日韩国产中文在线| 91久久精品日日躁夜夜躁国产| 亚洲av人无码激艳猛片服务器| 亚洲精品日韩专区silk| 天堂av资源网| 一区二区三区福利| 天天射综合影视| 日韩在线免费高清视频| 国产成人三级在线播放| gai在线观看免费高清| 欧美日韩在线看片| 日韩欧美精品三级| 五月天综合激情网| 九色蝌蚪自拍| 亚洲人成网站色在线观看| 久久99精品一区二区三区三区| 午夜精品短视频| 国产一区丝袜| 亚洲婷婷综合色高清在线| 一级国产黄色片| 99在线无码精品入口| 欧美性资源免费| 国产乱子伦精品无码专区| 国产精品视频线看| 大又大又粗又硬又爽少妇毛片| 亚洲欧美日韩一区二区三区在线观看| 精品亚洲免a| 亚洲资源在线播放| 国产私人尤物无码不卡| 欧美视频在线免费播放| 国产精品二区一区二区aⅴ污介绍| 日本视频网址| 8x8x8x视频在线观看| 强开小嫩苞一区二区三区视频| 亚洲精品国产一区二区| 日韩国产精品久久| 亚洲精品一区中文字幕电影| 日韩影视精品| 国产精品高潮在线| 日韩一级片在线观看| 在线国产精品网| 九色成人在线| 国产精品视频一二三四区| 欧美一级大片| 国产精品视频色| 天天摸天天干天天操| 日本精品在线中文字幕| 99自拍视频在线观看| 国产精品久久久久久久久免费樱桃| 97人洗澡人人免费公开视频碰碰碰| 亚洲视频三区| 国产又黄又粗又猛又爽的| 欧美猛交xxxxx| 国产无遮挡免费视频| 国产做受高潮69| 亚洲欧美另类人妖| 菠萝蜜一区二区| 99久久亚洲精品蜜臀| 精品国产欧美| 成人毛片在线精品国产| 国产精品国产三级国产有无不卡| av网在线播放| 国产美女视频黄a视频免费| 精品乱码亚洲一区二区不卡| 国产激情无套内精对白视频| 狠狠做深爱婷婷久久综合一区| 天堂综合在线播放| 毛片毛片毛片毛片| 91成人在线网站| 99www免费人成精品| yellow91字幕网在线| 69久久夜色| 欧美自拍视频在线观看| 一区二区日本伦理| 国产人妖乱国产精品人妖| 国产成人精品网址| 91视频观看视频| 欧美成人aaaaⅴ片在线看| 久久亚洲国产| 精品72久久久久中文字幕| 最新精品视频| 欧美日韩高清影院| 日韩av电影中文字幕| 亚洲国产日韩一区无码精品久久久| 人人干人人爱人人爱| 18禁网站免费无遮挡无码中文| 欧美国产精品v| 国产精品久久久久国产精品日日| 高潮无码精品色欲av午夜福利| 欧美福利视频一区二区| 久久久久久久中文字幕| 日韩av免费一区| 日韩黄色三级视频| 亚洲一区国产精品| 亚洲午夜精品久久久久久app| 亚洲制服在线观看| 亚洲国产综合久久精品小蝴蝶| 精品国产人成亚洲区| 九九热视频精品在线观看| 国产精品视频一区二区三区麻豆| 久久久久久久久久久久久久| 青青草原av在线| 成人激情视频在线观看| 亚洲女人的天堂| 中文字幕在线观看欧美| 国产精品国产三级国产aⅴ中文| 中文字幕永久在线视频| 五月天中文字幕一区二区| 性一交一乱一色一视频麻豆| 日韩欧美天堂| 久久久久一区二区三区| 无套内谢的新婚少妇国语播放| 1024精品视频| 久久精品国产v日韩v亚洲| 成人动漫网站在线观看| 91麻豆精品国产91| 精品乱码亚洲一区二区不卡| 日本一区二区免费在线观看| 国内成+人亚洲+欧美+综合在线| 中文字幕亚洲欧美日韩高清| 免费观看毛片网站| 精品国产一区二区三区av片| 人妻无码一区二区三区四区| 国产精品影院在线| 日本麻豆一区二区三区视频| 亚洲国产精品18久久久久久| 大荫蒂欧美视频另类xxxx| 久久久久久久久久久久av| 亚洲v天堂v手机在线| 欧美黄色一区二区三区| 国产探花在线精品| 黄色一级影院| 欧美深夜福利视频| 国产成人精品一区二区三区免费| 18被视频免费观看视频| 亚洲影院中文字幕| 91精品视频大全| 国产三级短视频| 精品国产伦一区二区三区观看说明| 欧洲国产伦久久久久久久| 亚洲欧美在线不卡| 波多野结衣av在线| 精品少妇人妻av免费久久洗澡| 精品中文字幕一区二区| av在线加勒比| 俄罗斯精品一区二区| 色激情天天射综合网| 中文字幕av一区| 国产日产欧美一区二区三区| 国产欧美一区二区三区米奇| 中文字幕久久久av一区| 亚洲婷婷在线观看| 精品乱码一区内射人妻无码| 成人毛片网站| 精品中文字幕不卡在线视频| 美女亚洲精品| 天天操天天干天天爱| 亚洲欧美www| 精品久久久无码中文字幕| 草莓视频末满18勿| 日本黄色片在线播放| 欧美激情一级欧美精品| 欧美日韩激情一区| 好紧好硬好湿我太爽了| 国产精品第七影院| 欧美国产一区二区| 日本大片在线播放| 欧美成人短视频| 久久大大胆人体| 国产欧美日韩丝袜精品一区| 看全色黄大色黄大片免责看的| 中文人妻av久久人妻18| 潘金莲一级淫片aaaaaa播放1| 欧美日韩卡一| 精品国产凹凸成av人网站| 亚洲一二三区视频在线观看| chinesegaysextube| 亚洲第五色综合网| 天堂网中文在线观看| 国产精品www色诱视频| 在线观看精品视频看看播放| 亚洲欧美日本另类| 精品无码人妻一区二区免费蜜桃| 国产综合精品一区二区三区| 国产福利热线视频| 91手机视频在线| 69xxxx国产| 麻豆av一区二区| 亚洲三级中文字幕| 97视频在线观看网址| 国产精品888| 巨大黑人极品videos精品| 国内精品久久久久久影院8f| 亚洲黄色免费网站| 污版网站在线观看| 国产精品久久久久久久久影视| 日本五十熟hd丰满| 欧美激情亚洲色图| 亚洲怡红院在线| 可以免费观看的黄色网址| 日批视频在线播放| a级高清视频欧美日韩| 国产成人鲁色资源国产91色综| 亚洲免费成人在线视频| 欧美与黑人午夜性猛交久久久| 国产成年人视频网站| 日本不卡一二三区| 最新真实国产在线视频| 久久免费视频66| 久久中文资源| 亚洲福利在线观看视频| 99riav1国产精品视频| 亚洲欧美日韩综合aⅴ视频| 紧缚奴在线一区二区三区| 欧美成人综合| 欧美国产精品一区| 国产mv日韩mv欧美| 丁香花在线观看完整版电影| 国产精品国精产品一二| 青青草视频网站| 免费涩涩18网站入口| 国产女主播喷水高潮网红在线| 在线看日韩欧美| 91免费国产网站| 亚洲成av人影院在线观看网| 国产无遮无挡120秒| 欧美成人另类视频| 白白在线精品| 国产内射老熟女aaaa∵| 影音先锋欧美资源| 日本深夜福利视频| 国产精品白浆一区二小说| 免费av一区二区三区四区| 日韩精品电影一区二区三区| 精品一区二区国语对白| av网站免费在线观看| 国产秀色在线www免费观看| 欧美中文字幕第一页| 欧美一级二级在线观看| 天天综合网在线|