mongodb dba常用的nosql語句
檢視幫忙命令
>hlep --server級別
>db.help() --db級別
>db. collectionname .help() --集合級別
檢視所有資料庫
>show dbs
--新建的資料庫並不在資料庫的列集合中,要顯示它,我們需要向新建的資料庫建立集合。
檢視當前資料庫
>db
建立資料庫
>use DATABASE_NAME
切換到某個資料
>use DATABASE_NAME
刪除當前資料庫,會把磁碟上的資料庫檔案一併刪除
>db.dropDatabase()
修復資料庫
> db.repairDatabase()
複製資料庫test為test999
> db.copyDatabase('test','test999')
檢視所有集合(關係型資料庫叫表)
>show collections
>show tables
檢視各集合的狀態
> db.printCollectionStats()
新建集合
db.createCollection("集合名", {集合的大小屬性:大小值,集合的增長屬性:增長值,集合的最大容量屬性:最大容量值,,,等等})
>db.createCollection("table1")
刪除集合table1
>db.table1.drop()
重新命名集合table1為table101
>db.table1.renameCollection("table101")
檢視集合table1的所在的資料庫名稱
>db.table1.getDB()
檢視集合table1的狀態
> db.table1.stats()
查詢集合
>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=2 and hid2=3
>db.table1.find({$or:[{"hid":2},{"hid2":3}]}) --hid=2 or hid2=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/}) --hid like '%2%'
>db.table1.find({"hid":/^2/}) --hid like '2%'
>db.table1.find({},{"hid":1,"go2":1}) --查詢指定的兩列hid和go2
>db.table1.find({"hid":23},{"hid":1,"go2":1}) --select hid,go2 from table1 where hid=23
>db.table1.find({},{"hid":true,"go2":true})--查詢指定的兩列hid和go2
>db.table1.find({"hid":23},{"hid":true,"go2":true})--select hid,go2 from table1 where hid=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的總行數
插入集合(關係型資料庫叫行,mongodb叫文件,insert後不需要手工提交,其他會話可以看到)
方法1
db.collectionname.insert({欄位名: "欄位值"})
>db.table1.insert({hid:"1"})
方法2
db.集合名.save({欄位名: "欄位值"})
>db.table1.save({hid:2,hname:"hao2"})
迴圈插入table1集合
for (var i = 0; i < 30; i++) db.table1.save({hid: "u_" + i, age: 22 + i, sex: i % 2});
更新集合( 關係型資料庫叫行,mongodb叫文件 )
>db.table1.update({'hid':2},{$set:{'hid':4}},{multi:true})
把hid欄位的值由2修改為4
update預設修改第一條發現的行,multi:true集合示修改多行
刪除集合( 關係型資料庫叫行,mongodb叫文件 )
>db.table1.remove({'hid2':5}) --刪除hid2為5的行
>db.table1.remove({}) --刪除所有行
建立索引
>db.table1.ensureIndex({"hid":1})
>db.table1.ensureIndex({"hid":1,"hid2":-1},{unique:true});
1表示升級排序,-1表示降序排序,"hid":1,"hid2":-1表示組合索引,unique:true表示唯一性索引
建立索引後,資料庫目錄下會多出一個index-開頭的檔案
檢視集合table1的索引資訊
>db.table1.getIndexes()
刪除集合table1的索引
>db.table1.dropIndexes()
建立使用者
>db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]});
>db.createUser({user:"admin1",pwd:"admin1",roles:[{role:"root",db:"admin"}]});
查詢使用者的三種方法
>use admin
>show users
>db.system.users.find()
>db.system.users.find().pretty()
查詢當前使用者
db.runCommand({connectionStatus:1})
建立replicate的語句,建立replicate前,兩個節點啟動的時候必須要加上replSet引數,且replSet引數值必須一樣,例如為replicate1
>use admin
>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()
>show dbs
再到從庫執行如下
>rs.slaveOk()
>show dbs
檢視replicate複製狀態
> db.printReplicationInfo()
查詢集合table1的shard版本資訊
>db.table1.getShardVersion()
檢視shard分片資訊
>db.printShardingStatus()
啟動
使用mongod命令,後面接各項引數
mongod -f /mongodb/mongodb.conf
關閉
方法1、
use admin
db.shutdownServer()
方法2、(如果啟動用了-f,則關閉的時候也要加-f)
mongod --shutdown
mongod --shutdown -f /mongodb/mongodb.conf
方法3、(不要加-9,否則下次啟動會無法啟動,需要刪除mongod.lock檔案或使用mongod啟動時必須加上--repair才能啟動成功)
kill <mongod process ID>
mongodb切換日誌
執行時間長了,mongodb的日誌會很大,可以執行切換,生成新的日誌,把舊的日誌刪除,執行這個語句,不影響mongodb服務的執行
> use admin
> db.runCommand({logRotate:1})
執行後,會生成新的名稱不變的日誌檔案,之前的日誌會以時間格式命名儲存下來
如果是replicate環境,不會影響replicate,primary執行這個語句只切換自己的日誌,不影響secondary環境的服務,也不會切換secondary環境的日誌;secondary執行這個語句只切換自己的日誌,不影響primary環境的服務,也不會切換primary環境的日誌
mongodb的日誌檔案,重啟後還在,且會把重啟涉及的關閉啟動資訊追加到這個日誌檔案中
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2645995/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB DBA常用的NoSQL語句(全)MongoDBSQL
- MongoDB常用語句MongoDB
- DBA常用SQL語句SQL
- sqlserver dba常用的sql語句SQLServer
- MongoDB中常用語句MongoDB
- DBA常用SQL語句系列SQL
- mysql dba常用的查詢語句MySql
- mongodb常用語句介紹MongoDB
- postgresql dba常用sql查詢語句SQL
- ORACLE DBA常用語句和指令碼Oracle指令碼
- DBA常用SQL語句[sql server] 2SQLServer
- DBA-常用到的動態檢視分析語句
- mongoDB的常用語法MongoDB
- mysql的常用語句MySql
- 常用的SQL語句SQL
- 常用的SQL 語句SQL
- 常用的oracle基本語句Oracle
- ORACLE常用語句:Oracle
- 常用MSSQL語句SQL
- 常用Javascript語句JavaScript
- mySql常用語句MySql
- 常用oracle語句Oracle
- 常用SQL語句SQL
- sql常用語句SQL
- oracel常用語句
- 史上最全:PostgreSQL DBA常用SQL查詢語句(建議收藏學習)SQL
- NoSQL學習——MongoDBSQLMongoDB
- MySQL中常用的SQL語句MySql
- Oracle常用的查詢語句Oracle
- Mysql日期常用語句MySql
- 【MySQL】常用拼接語句MySql
- oracle常用SQL語句OracleSQL
- SQL常用語句整理SQL
- MySql 常用Sql語句MySql
- 常用 SQL 語句大全SQL
- Matlab常用語句Matlab
- MongoDB 常用查詢語法MongoDB
- DBA的困境:NoSQL VS SQL 生存 Or 死亡?SQL