【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();(慎重)

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