MongoDB DBA常用的NoSQL語句(史上最全)

原文鏈接:https://mp.weixin.qq.com/s/FRBGiA06Zr5XhyfdbGGBKg


查看幫忙命令

<code>>hlep--server級別
>db.help()--db級別
>db.collectionname.help()--集合級別/<code>


查看所有數據庫

<code>>showdbs
--新建的數據庫並不在數據庫的列集合中,要顯示它,我們需要向新建的數據庫創建集合。/<code>


查看當前數據庫

<code>>db/<code>


創建數據庫

<code>>useDATABASE_NAME/<code>


切換到某個數據

<code>>useDATABASE_NAME/<code>


刪除當前數據庫,會把磁盤上的數據庫文件一併刪除

<code>>db.dropDatabase()/<code>


修復數據庫

<code>>db.repairDatabase()/<code>


拷貝數據庫test為test999

<code>>db.copyDatabase('test','test999')/<code>


查看所有集合(關係型數據庫叫表)

<code>>showcollections
>showtables/<code>


查看各集合的狀態

<code>>db.printCollectionStats()/<code>


新建集合


<code>db.createCollection("集合名",{集合的大小屬性:大小值,集合的增長屬性:增長值,集合的最大容量屬性:最大容量值,,,等等})
>db.createCollection("table1")/<code>


刪除集合table1

<code>>db.table1.drop()/<code>


重命名集合table1為table101

<code>>db.table1.renameCollection("table101")/<code>


查看集合table1的所在的數據庫名稱

<code>>db.table1.getDB()/<code>


查看集合table1的狀態

<code>>db.table1.stats()/<code>


查詢集合

<code>>db.table1.find()--查詢集合的所有數據

>db.table1.findOne()--查詢集合的第一條數據

>db.table1.count()--總行數

>db.table1.totalSize()--集合的總大小

>db.table1.storageSize()--集合的儲存空間大小

>db.table1.distinct("hid")--只查詢列hid,並列出該列的不重複的值

>db.table1.find({"hid":2})--hid=2

>db.table1.find({"hid":2,"hid2":3})--hid=2andhid2=3

>db.table1.find({$or:[{"hid":2},{"hid2":3}]})--hid=2orhid2=3

>db.table1.find({"hid":{$gt:1}})--hid>1

>db.table1.find({"hid":{$gte:1}})--hid>=1

>db.table1.find({"hid":{$lt:2}})--hid<2

>db.table1.find({"hid":{$lte:2}})--hid<=2


>db.table1.find({"hid":/2/})--hidlike'%2%'

>db.table1.find({"hid":/^2/})--hidlike'2%'

>db.table1.find({},{"hid":1,"go2":1})--查詢指定的兩列hid和go2

>db.table1.find({"hid":23},{"hid":1,"go2":1})--selecthid,go2fromtable1wherehid=23

>db.table1.find({},{"hid":true,"go2":true})--查詢指定的兩列hid和go2

>db.table1.find({"hid":23},{"hid":true,"go2":true})--selecthid,go2fromtable1wherehid=23

>db.table1.find().sort({"hid":1})--查詢結果按hid字段順序排序

>db.table1.find().sort({"hid":-1})--查詢結果按hid字段降序排序

>db.table1.find().limit(2)--查詢前兩條數據

>db.table1.find().skip(2)--查詢第2條以後的所有數據

>db.table1.find().limit(3).skip(2)--查詢第2條以後的後面3條數據

>db.table1.find({"hid":2}).count()--查詢hid=2的總行數/<code>


插入集合(關係型數據庫叫行,mongodb叫文檔,insert後不需要手工提交,其他會話可以看到)

方法1

<code>db.collectionname.insert({字段名:"字段值"})

>db.table1.insert({hid:"1"})/<code>


方法2

<code>db.集合名.save({字段名:"字段值"})

>db.table1.save({hid:2,hname:"hao2"})

循環插入table1集合

for(vari=0;i<30;i++)db.table1.save({hid:"u_"+i,age:22+i,sex:i%2});/<code>


更新集合( 關係型數據庫叫行,mongodb叫文檔 )

<code>>db.table1.update({'hid':2},{$set:{'hid':4}},{multi:true})

把hid字段的值由2修改為4

update默認修改第一條發現的行,multi:true集合示修改多行/<code>


刪除集合( 關係型數據庫叫行,mongodb叫文檔 )

<code>>db.table1.remove({'hid2':5})--刪除hid2為5的行

>db.table1.remove({})--刪除所有行/<code>


創建索引


創建索引後,數據庫目錄下會多出一個index-開頭的文件

<code>>db.table1.ensureIndex({"hid":1})

>db.table1.ensureIndex({"hid":1,"hid2":-1},{unique:true});

1表示升級排序,-1表示降序排序,"hid":1,"hid2":-1表示組合索引,unique:true表示唯一性索引/<code>


查看集合table1的索引信息

<code>>db.table1.getIndexes()/<code>


刪除集合table1的索引

<code>>db.table1.dropIndexes()/<code>


創建用戶

<code>>db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]});

>db.createUser({user:"admin1",pwd:"admin1",roles:[{role:"root",db:"admin"}]});/<code>


查詢用戶的三種方法

<code>>useadmin

>showusers

>db.system.users.find()

>db.system.users.find().pretty()/<code>


查詢當前用戶

<code>db.runCommand({connectionStatus:1})/<code> 


創建replicate的語句,創建replicate前,兩個節點啟動的時候必須要加上replSet參數,且replSet參數值必須一樣,例如為replicate1


<code>>useadmin

>config={_id:'replicate1',members:[{_id:0,host:'172.22.1.157:27017'},{_id:1,host:'172.22.1.158:27017'}]}

>rs.initiate(config)

>rs.status(config)

>rs.status()

>showdbs

再到從庫執行如下

>rs.slaveOk()

>showdbs/<code>


查看replicate複製狀態

<code>>db.printReplicationInfo()/<code>


查詢集合table1的shard版本信

<code>>db.table1.getShardVersion()/<code>


查看shard分片信

<code>>db.printShardingStatus()/<code>


啟動

<code>使用mongod命令,後面接各項參數
mongod-f/mongodb/mongodb.conf/<code>


關閉

方法1、

<code>useadmin
db.shutdownServer()/<code>


方法2、(如果啟動用了-f,則關閉的時候也要加-f)

<code>mongod--shutdown

mongod--shutdown-f/mongodb/mongodb.conf/<code>


方法3、(不要加-9,否則下次啟動會無法啟動,需要刪除mongod.lock文件或使用mongod啟動時必須加上--repair才能啟動成功)

<code>kill<mongodprocessid>
/<mongodprocessid>/<code>


mongodb切換日誌

運行時間長了,mongodb的日誌會很大,可以執行切換,生成新的日誌,把舊的日誌刪除,執行這個語句,不影響mongodb服務的運行


<code>>useadmin

>db.runCommand({logRotate:1})/<code>


執行後,會生成新的名稱不變的日誌文件,之前的日誌會以時間格式命名保存下來

如果是replicate環境,不會影響replicate,primary執行這個語句只切換自己的日誌,不影響secondary環境的服務,也不會切換secondary環境的日誌;secondary執行這個語句只切換自己的日誌,不影響primary環境的服務,也不會切換primary環境的日誌

mongodb的日誌文件,重啟後還在,且會把重啟涉及的關閉啟動信息追加到這個日誌文件中


出處:http://blog.itpub.net/30126024/viewspace-2645995/


想了解更多關於數據庫、雲技術的內容嗎?

快來關注“數據和雲"、"雲和恩墨,"公眾號及"雲和恩墨"官方網站,我們期待大家一同學習與進步!

MongoDB DBA常用的NoSQL語句(史上最全)

小程序”DBASK“在線問答,隨時解惑,歡迎瞭解和關注!

MongoDB DBA常用的NoSQL語句(史上最全)


分享到:


相關文章: