mongodb常用命令和基本知識

1、 db.copyDatabase("blog", "blog2") // 複製數據庫

 

2、 db.dropDatabase() // 刪除數據庫 blog2

 

3 、在多臺服務器之間複製數據庫 db.copyDatabase("blog", "blog", "192.168.1.202") // 從源服務器複製 blog 數據庫 

> use news

switched to db news

> db.cloneDatabase("192.168.1.202") // 從源服務器克隆當前數據庫(news)

 

4、 當我們使用 use 切換到某個數據庫時,變量 db 表示當前數據庫。還可以用 getSisterDB() 函數獲取其他數據庫的引用。

> blog = db.getSisterDB("blog")

blog

> blog.users.insert({name : "abc"})

> blog.users.find({name : "abc"})

 

5、 索引信息被保存在 system.indexes 中,且默認總是爲 _id 創建索引。

ensureIndex / dropIndex / reIndex

使用 ensureIndex 創建索引,dropIndex() 刪除索引,dropIndexes() 刪除全部索引(不包括 _id 等系統索引)。


> db.users.ensureIndex({name:1})  
> db.users.ensureIndex({age:1})  
 
> db.system.indexes.find()  

 

6. Unique Index

只需在 ensureIndex 命令中指定 unique 即可創建唯一索引。


> db.users.ensureIndex({name:1}, {unique: true })  
> db.system.indexes.find()  

 

7. totalIndexSize

MongoDB 會將索引數據載入內存,以提高查詢速度。我們可以用 totalIndexSize 獲取全部索引數據大小。

 

8、dbpath & port

默認數據存儲路徑是 /data/db,默認端口 27017,默認 HTTP 端口 28017。用 --dbpath 和 --port 改吧

 

9. daemon

如果想以 Daemon 方式運行,需要同時使用 --fork、--logpath 參數。 

 

10、排序 db.users.find().sort({age:-1}).limit(10000)


11、 Replica Sets 11.

Replica Sets 使用 n 個 Mongod 節點,構建具備自動容錯轉移(auto-failover)、自動恢復(auto-recovery) 的高可用方案。通常使用 3 個 mongod 實例,或者 2 mongod + 1 arbiter 方案。


/home/qiyk/tool/mongodb/bin/mongod -port 27017 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db -fork -rest -logpath=/home/qiyk/tool/mong
odb/data/log/all.log

 /home/qiyk/tool/mongodb/bin/mongod -port 27027 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db2 -fork -rest -logpath=/home/qiyk/tool/mo
ngodb/data/log/all2.log

 /home/qiyk/tool/mongodb/bin/mongod -port 27037 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db3 -fork -rest -logpath=/home/qiyk/tool/mo
ngodb/data/log/all3.log

然後:> cfg={_id:"myset",members:[
... ... {_id:0,host:"10.20.155.10:27017"},
... ... {_id:1,host:"10.20.155.10:27027"},
... ... {_id:2,host:"10.20.155.10:27037"}]};

 

> rs.initiate(cfg)
;
{
        "info" : "Config now saved locally.  Should come online in about a minute.",
        "ok" : 1
}

 

如此 Replica Sets 就算配置成功。

相關配置數據保存在 local 數據庫中。

 

 

12. #只允許某ip訪問 
$ mongod --bind_ip 127.0.0.1

 

13、Mongo Database Profiler

也可以在客戶端調用db.setProfilingLevel(級別) 命令來實時配置。可以通過db.getProfilingLevel()命令來獲取當前的Profile級別。

 

					
  1. >  db.setProfilingLevel(2);  
  2. {"was" : 0 , "ok" : 1}  
  3. >  db.getProfilingLevel()  

上面斜體的級別可以取0,1,2 三個值,他們表示的意義如下:

0 – 不開啓

1 – 記錄慢命令 (默認爲>100ms)

2 – 記錄所有命令

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章