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({})
--刪除所有行
建立索引
建立索引後,資料庫目錄下會多出一個index-開頭的檔案
>db.table1.ensureIndex({
"hid"
:
1})
>db.table1.ensureIndex({
"hid"
:
1,
"hid2"
:-
1},{
unique:
true});
1表示升級排序,-
1表示降序排序,
"hid"
:
1,
"hid2"
:-
1表示組合索引,
unique:
true表示唯一性索引
檢視集合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的日誌檔案,重啟後還在,且會把重啟涉及的關閉啟動資訊追加到這個日誌檔案中
出處:http://blog.itpub.net/30126024/viewspace-2645995/
想了解更多關於資料庫、雲技術的內容嗎?
快來關注“資料和雲"、"雲和恩墨,"公眾號及"雲和恩墨"官方網站,我們期待大家一同學習與進步!
小程式”DBASK“線上問答,隨時解惑,歡迎瞭解和關注!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2673070/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mongodb dba常用的nosql語句MongoDBSQL
- sqlserver dba常用的sql語句SQLServer
- MongoDB中常用語句MongoDB
- mysql dba常用的查詢語句MySql
- postgresql dba常用sql查詢語句SQL
- mysql的常用語句MySql
- 史上最全:PostgreSQL DBA常用SQL查詢語句(建議收藏學習)SQL
- 建模常用的pandas語句
- mySql常用語句MySql
- 常用MSSQL語句SQL
- sql常用語句SQL
- oracel常用語句
- Matlab常用語句Matlab
- ORACLE常用語句:Oracle
- NoSQL學習——MongoDBSQLMongoDB
- MySQL中常用的SQL語句MySql
- Mysql日期常用語句MySql
- 【MySQL】常用拼接語句MySql
- MongoDB 常用查詢語法MongoDB
- JavaScript常用的流程控制語句JavaScript
- 常用sql進階語句SQL
- SQL 常用語句一覽SQL
- shell學習-常用語句
- 織夢cms常用的SQL語句_dedecmsSQL
- 常用 NoSQL 比較SQL
- Android原生SQLite常用SQL語句AndroidSQLite
- mysql 常用sql語句 簡介MySql
- 【LOB】Oracle lob管理常用語句Oracle
- oracle資料庫常用語句Oracle資料庫
- The SQL vs NoSQL Difference: MySQL vs MongoDBMySqlMongoDB
- 深入理解mongodb查詢條件語句MongoDB
- Oracle常用的系統查詢語句整理Oracle
- 資料庫常用的sql語句彙總資料庫SQL
- 資料庫常用的sql語句大全--sql資料庫SQL
- DBA常用的linux命令Linux
- MySQL的一些常用的SQL語句整理MySql
- 資料庫常用操作SQL語句資料庫SQL
- MySql常用操作SQL語句彙總MySql