原文鏈接: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/
想了解更多關於數據庫、雲技術的內容嗎?
快來關注“數據和雲"、"雲和恩墨,"公眾號及"雲和恩墨"官方網站,我們期待大家一同學習與進步!

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

閱讀更多 數據和雲智能 的文章