非关系数据库------MongoDB的安装与使用
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,MongoDB概述MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复
千家信息网最后更新 2024年12月13日非关系数据库------MongoDB的安装与使用
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 Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc#安装 MongoDByum 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/mongodbcd /data/mongodb/mkdir mongotouch 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-8Boolean#布尔值,true 或者falseInteger#整数型Double#浮点型Arrays#数组或者列表,多个值存储到一个键Object#用于嵌入文档,即一个值为一个文档Null#存储null值Binary Data #二进制数据,用于存储二进制数据Date#存储当前日期或时间unix时间格式
查看数据类型
a=db.info.findOne({"id":1}) #查找指定记录并赋予别名aypeof(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 27018db.runCommand({"cloneCollection":"school.info","from":"192.168.142.152:27017"})
安全管理
创建管理用户;启动时必须指定 auth=true;可以将用户分配角色;内置数据库用户角色: read 、 readWrite;数据库管理员角色: dbAmin 、 dbOwner 、 userAdmin;超级用户管理员用户:root
#编辑配置文件vim /etc/mongod.confauth=true #添加指定use admindb.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
数据
数据库
文件
代表
存储
用户
支持
实例
目录
查询
配置
备份
端口
类型
服务
工具
进程
管理
信息
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国网络安全空间协会福利
惠州市京通网络技术有限公司
415网络安全教育日视频
普陀区媒体数据库服务报价行情
java网络安全设计
服务器哪里设置手动重启
腾讯站群服务器多ip怎么使用
网络安全教育板报文字
web数据传到数据库
qq飞车服务器在维护是什么意思
普讯网络技术有限公司
云南临沧网络安全法
数据库数据流
杨浦区专业软件开发服务销售公司
图片服务器程序
哪些数据库有dfs数据
武汉科技大学数据库电子资源
关于网络安全的Chrome扩展
云管家服务器地址
r2 数据库备份
方舟转服务器怎么载入存档
杭州漆耀网络技术有限公司
网络安全事务部
以下针对数据库安全
cath数据库简介
关于网络技术的自我介绍
河南项目软件开发费用是多少
sql数据库入门是什么
杨浦区专业软件开发服务销售公司
联想3650服务器进入raid