加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

非关系数据库------MongoDB的安装与运用

发布时间:2023-09-27 15:16:09 所属栏目:系统 来源:
导读:MongoDB概述

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mon
MongoDB概述
 
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
 
MongoDB特点
 
面向集合存储,易存储对象类型的数据;
 
模式自由、支持查询、支持动态查询;
 
支持完全索引,包含内部对象;
 
支持复制和故障恢复;
 
使用高效的二进制数据存储,包括大型对象(如视频等);
 
自动处理碎片,以支持云计算层次的扩展性;
 
支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言;
 
文件存储格式为BSON(一种JSON的扩展);
 
可通过网络访问。
 
在Linux安装MongoDB
 
#配置yum源仓库
 
cd /etc/yum.repos.d/
 
vim mongodb-org.repo
 
[mongodb-org]
 
name=MongoDB Repository
 
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
 
gpgcheck=1
 
enabled=1
 
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
 
#安装 MongoDB
 
yum install mongodb-org -y
 
#修改配置文件
 
vim /etc/mongod.conf
 
#修改第30行的监听地址
 
bindIp: 0.0.0.0
 
#开启服务
 
systemctl start mongod.service
 
#关闭防火墙和安全功能
 
systemctl stop firewalld.service
 
setenforce 0
 
#查看服务端口状态
 
netstat -ntap | grep mongod
 
#复制配置文件,以开启多实例
 
cp -p /etc/mongod.conf /etc/mongod2.conf
 
#修改配置文件
 
vim /etc/mongod2.conf
 
#第10行,修改日志文件目录
 
path: /var/log/mongodb/mongod2.log
 
#第14行,修改数据存储目录
 
dbPath: /data/mongodb/mongo
 
#第29行,修改服务端口号
 
port: 27018
 
#创建实例的目录和日志文件
 
mkdir -p /data/mongodb
 
cd /data/mongodb/
 
mkdir mongo
 
touch mongod2.log
 
#目录授权
 
chmod 777 mongod2.log
 
#启动实例
 
mongod -f /etc/mongod2.conf
 
#指定实例的端口
 
mongo --port 27018
 
#查看服务端口状态
 
netstat -ntap
 
MongoDB 基础操作
 
#查看版本
 
db.version()
 
#查看数据库    
 
show dbs;   
 
#查看当前数据库机器的连接地址      
 
db.getMongo()  
 
#显示集合操作命令
 
db.集合名.help     
 
#显示用户
 
show users       
 
增删改查
 
use school;                       
 
#打开school数据库, 不存在会创建,不建立集合又会删除
 
db.createCollection('info')        
 
#创建集合
 
db.info.insert({"id":1,"name":"zhangsan","hobby":["game","talk"]})      
 
#添加数据
 
db.info.find()                    
 
#查看info集合中所有文档
 
show collections                  
 
#查看数据库中所有集合
 
db.info.update({"id":10},{$set:{"name":"tom"}})     
 
#更改数据
 
db.info.remove({"id":2})         
 
#移除info集合中的id2的数据
 
db.info.drop()                   
 
#删除info集合
 
db.dropDatabase()               
 
#删除数据库  先use到要删的数据库里在删
 
db.info.count()                 
 
#统计有多少条数据
 
MongoDB 数据类型
 
String
 
#字符串,最常用,必须是utf-8
 
Boolean
 
#布尔值,true 或者false
 
Integer
 
#整数型
 
Double
 
#浮点型
 
Arrays
 
#数组或者列表,多个值存储到一个键
 
Object
 
#用于嵌入文档,即一个值为一个文档
 
Null
 
#存储null值
 
Binary Data
 
#二进制数据,用于存储二进制数据
 
Date
 
#存储当前日期或时间unix时间格式
 
查看数据类型
 
a=db.info.findOne({"id":1})   
 
#查找指定记录并赋予别名a
 
ypeof(a.id)                  
 
#查看属性类型
 
备份与恢复数据
 
导出工具:mongoexport
 
导入工具:mongoimport
 
常见选项:
 
-h,--host :代表远程连接的数据库地址,默认连接本地Mongo数据库;
 
--port:代表远程连接的数据库的端口,默认连接的远程端口27017;
 
-u,--username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
 
-p,--password:代表连接数据库的账号对应的密码;
 
-d,--db:代表连接的数据库;
 
-c,--collection:代表连接数据库中的集合;
 
-f, --fields:代表集合中的字段,可以根据设置选择导出的字段;
 
--type:代表导出输出的文件类型,包括csv和json文件;
 
-o, --out:代表导出的文件名;
 
-q, --query:代表查询条件;
 
--skip:跳过指定数量的数据;
 
--limit:读取指定数量的数据记录;
 
--sort:对数据进行排序,可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列,如sort({KEY:1})。
 
for(var i=1;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i})    
 
#循环写入100条数据
 
mongoexport -d school -c info -o /opt/info.json        
 
#导出指定文件
 
mongoimport -d school -c info1 --file /opt/info.json  
 
#导入到info1集合
 
mongoexport -d school -c info1 -q '{"id":{"$eq":10}}' -o /opt/top10.json    
 
#查询指定第10行条件导出
 
备份与恢复
 
备份工具:mongodump
 
恢复工具:mongorestore
 
常用选项:
 
-h 指定Mongodb所在服务器的地址也可以指定端口(例:-h 127.0.0.1:27017)
 
-d :需要备份的数据库;
 
-o :备份数据存放的目录 该目录需提前创建
 
mkdir /backup                       
 
#创建存放目录
 
mongodump -d school -o /backup/     
 
#备份school数据库
 
mongorestore -d school1 --dir=/backup/school    
 
#恢复到school1数据库
 
复制数据库:
 
db.copyDatabase("school","school2")     
 
#复制数据库school 到school2中
 
克隆数据库:
 
把数据库school的info集合 克隆到实例2
 
先进入实例2的MongoDB
 
mongo --port 27018
 
db.runCommand({"cloneCollection":"school.info","from":"192.168.142.152:27017"})
 
安全管理
 
创建管理用户;
 
启动时必须指定 auth=true;
 
可以将用户分配角色;
 
内置数据库用户角色: read 、 readWrite;
 
数据库管理员角色: dbAmin 、 dbOwner 、 userAdmin;
 
超级用户管理员用户:root
 
#编辑配置文件
 
vim /etc/mongod.conf
 
auth=true   
 
#添加指定
 
use admin
 
db.createUser({"yj":"root","pwd":"123","roles":["root"]})
 
#创建用户yj  密码123  分配root角色
 
db.auth("root","123")     
 
#验证用户
 
进程管理
 
查看当前正在运行的进程: db.currentOp()
 
终止正在运行的进程: db.killOp(opid值)
 
 db.currentOp()      
 
#查看当前运行进程
 
db.killOp(4872)
 
#终止4872进程
 
MongoDB 监控
 
MongoDB提供一些内置工具可以监测数据库的状态信息
 
查看数据库实例的状态信息: db.serverStatus()
 
查看数据库的统计信息: db.stats()
 
此外也可以通过web界面查看系统监控信息需要在配置文件中加入
 
##编辑配置文件
 
vim /etc/mongod.conf
 
#开启http服务
 
httpinterface=true
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章