MongoDB-安装和基本操作
安装
# 关闭防火墙和SELINUX
systemctl stop firewalld
systemctl disable firewalld
sed -ri 's/^SELINUX=permissive/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
# 在/etc/rc.local下添加如下
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
# 下载二进制包
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.11.tgz
# 新建mongodb用户和目录结构
useradd mongodb
passwd mongodb
mkdir -p /mongodb/{log,data,conf}
chown mongodb.mongodb -R /mongodb
# 解压并配置用户环境变量
echo "export PATH=/usr/local/mongodb/bin:$PATH" >> /home/mongodb/.bash_profile
source /home/mongodb/.bash_profile
# 启动
su - mongodb
mongod --dbpath=/mongodb/data --logpath=/mongodb/logs/mongodb.log --port=27017 --logappend --fork
# 配置文件
---数据存储有关
storage:
journal:
enabled: true
dbPath: "/mongodb/data" # 数据路径的位置
---进程控制
processManagement:
fork: true # 后台守护进程
pidFilePath: <string> # pid文件的位置,一般不用配置,可以去掉这行,自动生成到data中
---网络配置有关
net:
bindIp: <ip> # 监听地址
port: <port> # 端口号,默认不配置端口号,是27017
---安全验证有关配置
security:
authorization: enabled # 是否打开用户名密码验证
# 利用配置文件启动和关闭
mongod -f mongo.conf
mongod -f mongo.conf --shutdown
基本操作
mongodb 默认存在的库
test:登录时默认存在的库
管理MongoDB有关的系统库
admin库:系统预留库,MongoDB系统管理库
local库:本地预留库,存储关键日志
config库:MongoDB配置信息库
show databases/show dbs
show tables/show conllections
use admin
db/select database()
命令种类
db 对象相关命令
db.[TAB][TAB]
db.help()
db.test.[TAB][TAB]
db.test.help()
rs 复制集相关
(replication set)
rs.[TAB][TAB]
rs.help()
sh 分片集群
(sharding cluster)
sh.[TAB][TAB]
sh.help()
对象操作
库的操作
> use test
switched to db test
> db.dropDatabase()
{ "ok" : 1 }
集合的操作
> db.createCollection('a')
{ "ok" : 1 }
当插入一个文档的时候,一个集合就会自动创建
> use cai
switched to db cai
> db.stu.insert({id:101,name:"Cai",age:21,gender:"m"})
WriteResult({ "nInserted" : 1 })
> show tables;
stu
test
>
文档操作
数据录入
for(i=0;i<10000;i++){db.log.insert({"uid":1,"name":"test","age":1})}
查询数据行数
db.log.count()
全表查询
db.log.find()
每页显示50条记录
DBQuery.shellBatchSize=50;
按照条件查询
db.log.find({uid:1})
以标准的json格式显示数据
db.log.find({uid:1}).pretty()
{
"_id" : ObjectId("61d537be4be04e421c519022"),
"uid" : 1,
"name" : "test",
"age" : 1
删除集合中的所有记录
db.log.remove({})
查看集合存储信息
db.log.totalSize() # 集合中索引+数据压缩之后的大小

浙公网安备 33010602011771号