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()  # 集合中索引+数据压缩之后的大小
posted @ 2022-02-15 11:10  Cai_HL  阅读(42)  评论(0)    收藏  举报
>