安装
yum install -y openssl-devel openssl
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.10.tgz
tar zxvf mongodb-linux-x86_64-rhel70-3.4.10.tgz
mkdir /usr/local/mongodb
mv mongodb-linux-x86_64-rhel70-3.4.10/* /usr/local/mongodb
cd /usr/local/mongodb
mkdir data
mkdir log
mkdir /data/db -p
cd bin
vi mongodb.conf
#配置文件内容参考如下
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/log/mongodb.log
port=27017
bind_ip=192.168.19.131 (只有这个ip可以访问,如果配置外网可以访问注释此行)
fork=true
nohttpinterface=true
#7.启动MongoDB
./mongod --config mongodb.conf
#8.测试
telnet 192.168.200.130 27017
#9.设置开机启动
vi /etc/rc.local
#添加
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
#10.重启测试MongoDB能否自启,如果远程访问需要添加防火墙设置打开27017端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
vi /etc/profile
export PATH=/usr/local/mongodb/bin:$PATH
创建db
use zhaji
db
db.test.insert({a:1, b:1})
show dbs;
添加用户
use zhaji
db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]})
建表
db.createCollection("name")
完整的命令如下:
db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean>, size: <number>, max <number>} )
name:集合的名字
capped:是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
size:限制集合使用空间的大小,默认为没有限制
max:集合中最大条数限制,默认为没有限制
autoIndexId:是否使用_id作为索引,默认为使用(true或false)
size的优先级比max要高
常用方法介绍:
1、一般来说,我们创建集合用db.createCollection(name),如:db.createCollection("log"),创建一个名字为log的集合,没有任何的大小,数量限制,使用_id作为默认索引;
2、限制集合空间的大小:db.createCollection("log",{size:1024})或db.createCollection("log",{capped:true,size:1024}),创建一个名字为log集合,限制它的空间大小为1M,如果超过1M的大小,则会删除最早的记录;
3、限制集合的最大条数:db.createCollection("log",{max:1024}),创建一个名字为log集合,最大条数为1024条,超过1024再插入数据的话会删除最早的一条记录。这个不能使用capped:true,否则会报错;
4、即限制最大条数有限制使用空间大小:db.createCollection("log",{size:1024,max:1024})或db.createCollection("log",{capped:true,size:1024,max:1024}),限制集合最大使用空间为1M,最大条数为1024条
以上是参考官方文档和实际测试得出的,也可以看出capped参数没有什么用处,用不用都可以。
建索引
db.users.ensureIndex({name:1})
ensureIndex() 方法
MongoDB使用 ensureIndex() 方法来创建索引。
语法:db.COLLECTION_NAME.ensureIndex({KEY:1})
语法中 Key 值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可
ttl索引
db.subscribeUser.createIndex( { "createTime": 1 }, { expireAfterSeconds: 60*60*24 } )
>db.log_events.createIndex( { "createTime": 1 }, ---字段名称
{ expireAfterSeconds: 60*60 } ) ---过期时间(单位秒)
>db.log_events.getIndexes() ---查看索引
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "tt.t1"
},
{
"v" : 1,
"key" : {
"createTime" : 1
},
"name" : "createTime_1",
"ns" : "tt.t1",
"expireAfterSeconds" : 3600
}
]
参考
https://blog.csdn.net/jianlong727/article/details/54631124