【mongodb】安裝及常用命令

一、 mongodb安裝

1、 配置yum

/etc/yum.repos.d/mongodb.repo[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
gpgcheck=0
enabled=1

2、 安裝yum install mongo-10gen mongo-10gen-server

3、 修改配置文件

/etc/mongod.conf

dbpath=/home/mongodb                                    #數據庫路徑

logpath=/home/mongodb/mongod.log             #日誌文件路徑

logappend=true                                                   #日誌文件末尾添加

fork = true                                                            #在後臺運行

port = 27017                                                        #端口

pidfilepath = /home/mongodb/mongod.pid      #pid文件路徑

slave = true                                                           #指定爲從機器,如果是主master = true

source = 10.0.0.39                                              #指定主機器的IP地址,如果是主source = 127.0.0.1

slavedelay= 10                                                     #指從複製檢測的時間間隔

 4、 啓動

mongod --fork --config=/etc/mongod.conf 

二、 常用命令

1.use database;                                #創建一個數據庫或進入一個數據庫

2.db.dropDatabase();                      #刪除當前所在的數據庫

3.   show dbs;                                   #查看所有數據庫

4.   db;                                              #查看當前所在的數據庫

5.  db.createCollection('replicationColletion', {'capped':true, 'size':10240, 'max':17855200})  #創建集合(表)

userInfo = { "name" : "ysb" , "age" : "20"};          #定義插入字段及數據

db. replicationColletion.save(userInfo);              #插入數據

db.replicationColletion.find();                               #查看數據

db. replicationColletion.save({ "name" : "ysb" , "age" : "20"})       #直接插入並保存

6.   db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);                          #更改數據         

7.   db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);      #更改數據

8.   db.users.remove({age: 132});                                                                                            #刪除數據

9.   db.replicationColletion.drop()                                                                                            #刪除集合

10.     show collections                                                                                                             #查看集合

11.     db.replicationColletion.count()                                            #查看集合中數據數量

12.     db.getCollection("replicationColletion")                            #查看指定名稱的聚集集合

13.     show tables;                                                                         #查看庫下所有表  (集合)

14.     db. replicationColletion.stats();                                          #查看一個集合的狀態

> db.crashinfo.stats();

{

        "ns" : "mobo.crashinfo",                                        #集合的名稱

        "count" : 634,                                                          #集合中的數量

        "size" : 726784,                                                      #集合中數據佔用空間大小,,不包括索引,單位爲字節

        "avgObjSize" : 1146.3470031545742,               #平均對象佔用的空間大小

        "storageSize" : 1740800,                                     #給整個集合分配的存儲空間,當刪除集合中的文檔時,這個值不會降低

        "numExtents" : 4,                                                   #連續分配的數據塊

        "nindexes" : 1,                                                        #索引個數,每個集合至少有一個 _id 索引

        "lastExtentSize" : 1310720,                                 #最近分配的塊的大小

        "paddingFactor" : 1,

        "systemFlags" : 1,

        "userFlags" : 0,

        "totalIndexSize" : 32704,                                     #所有索引大小總和

        "indexSizes" : {                                                     #列出集合的所有索引字段,以及索引大小

                "_id_" : 32704

        },

        "ok" : 1

}

15.     db.printCollectionStats();                                   #查看當前所有集合狀態

16.     db. replicationColletion.totalSize();                  #查看聚集集合總大小

17.     db. replicationColletion.storageSize();            #查看聚集集合存儲空間大小

18.     db.themes.find({themeId: {$in: [8,9]}},{packageFile:true}); = select createTime from themes where themeId in (8,9);                #查詢

19.     db.system.users.find();                                       #查看系統下所有用戶

20.     db.addUser('user_reader','123',true);               #添加用戶

21.     db.auth("user_reader”,”123”);                            #認證用戶

22.     db.removeUser("userName");                           #刪除用戶

23.     mongodump -h 10.60.145.18 -d anthcraft      -o /home #備份數據庫         

24.     mongorestore –drop                                          #恢復數據庫

常見錯誤日誌:

1.  Mon May 12 12:02:20.285 [conn548915] info DFM::findAll(): extent 0:24f000 was empty, skipping ahead. ns:anthcraft.jpwallpapers

當在mongodb中刪除了大量的數據後,經常出現

意思是太多閒置的空間(刪除體積較大的集合,或刪除大量文檔後騰出的空間)。

可以通過修復命令來壓縮數據。

use test

db.repairDatabase();(慎重)

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