Yum安装MongoDB及数据库管理
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,MongoDB简介MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能
千家信息网最后更新 2025年01月21日Yum安装MongoDB及数据库管理
MongoDB简介
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
MongoDB主要特点
- MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易
- 在MongoDB记录中设置任何属性的索引来实现更快的排序
- 通过本地或者网络创建数据镜像,使得MongoDB有更强的扩展性
- 如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组
- MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段
- Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作
- Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理
- Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作
- GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件
- MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可
- MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言
- MongoDB安装简单
MongoDB的安装
配置YUM源仓库
cd /etc/yum.repos.d/vim mongodb-org.repo//创建yum仓库,写入如下内容[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
yum安装
yum install -y mongodb-org
配置文件修改
配置文件的修改包括path、dbpath、port和bindIp,如果只在本机使用,完全可以不做更改直接使用,也可简单修改其监听地址(bindIp),为其他地址使用提供方便。
关闭防火墙及selinux
systemctl disable firewalld.servicesystemctl stop firewalld.servicesetenforce 0
开启数据库
systemctl start mongod.servicenetstat -anpt | grep mongod
进入数据库
mongo //进入数据库db.version() //查看数据库版本show dbs //查看所有库db.getMongo() //查看当前数据库机器的连接地址
开启多实例
创建path,dbpath目录
mkdir -p /data/mongodb/ //*保留原文件属性进行复制mkdir /data/mongodb/mongotouch /data/mongodb/mongod2.logchmod 777 /data/mongodb/mongod2.log
复制并修改配置文件配置文件
path: /data/mongodb/mongod.logdbPath: /data/mongodb/mongoport: 27018bindIp: 0.0.0.0
启动新实例
mongod -f /etc/mongod2.conf
进入新实例数据库
mongo --port 27018netstat -anpt | grep mongod
数据库管理
数据库基本操作
mongodb中创建库是和表紧密联系在一起的,要创建库,只需要use使用即可,当你没有在库中创建集合(表),则该库便不会存在,当你创建了集合之后,库也相应的同时存在。
> use python //若不存在则会自动创建python库,若是不创建集合,又会自行删除> db.createCollection('a') //创建名称为a的集合> db.a.insert({"name":"zhangsan","score":90,"hobby":["game","talk","sport"]})//集合中插入数据;字符串使用双引号;数值不加双引号;字符串数组使用[]括起来> db.users.update() //更改数据> show collections //查看集合> db.a.drop() //删除集合> db.dropDatabase() //删除数据库
实例演示
> use stady //使用库switched to db stady> db.createCollection('school') //创建school集合{ "ok" : 1 }> db.school.insert({"id":1,"name":"lisi","score":90}) //向集合中插入数据WriteResult({ "nInserted" : 1 })> db.school.find() //查看集合中数据{ "_id" : ObjectId("5b4843900edf47ef3aa006f3"), "id" : 1, "name" : "lisi", "score" : 90 }> for(var i=2;i<=5;i++)db.school.insert({"id":i,"name":"tom"+i})//向集合中插入多条数据WriteResult({ "nInserted" : 1 })> db.school.find() //查看集合数据{ "_id" : ObjectId("5b4843900edf47ef3aa006f3"), "id" : 1, "name" : "lisi", "score" : 90 }{ "_id" : ObjectId("5b4844e70edf47ef3aa006f4"), "id" : 2, "name" : "tom2" }{ "_id" : ObjectId("5b4844e70edf47ef3aa006f5"), "id" : 3, "name" : "tom3" }{ "_id" : ObjectId("5b4844e70edf47ef3aa006f6"), "id" : 4, "name" : "tom4" }{ "_id" : ObjectId("5b4844e70edf47ef3aa006f7"), "id" : 5, "name" : "tom5" }> db.school.findOne({"id":3}) //查看集合中第三条数据{ "_id" : ObjectId("5b4844e70edf47ef3aa006f5"), "id" : 3, "name" : "tom3" }> a=db.school.findOne({"id":3}) //查看第三条记录,并将其赋予别名a{ "_id" : ObjectId("5b4844e70edf47ef3aa006f5"), "id" : 3, "name" : "tom3" }> typeof(a.id) //查看属性类型number //属性为数字> typeof(a.name) //查看属性类型string //属性为字符串> db.school.update({"id":3},{$set:{"name":"jack"}}) //修改数据WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.school.findOne({"id":3}){ "_id" : ObjectId("5b4844e70edf47ef3aa006f5"), "id" : 3, "name" : "jack" }> db.school.count() //统计集合中有多少条记录5> db.createCollection('tea') //创建新集合{ "ok" : 1 }> show tables //查看库中集合schooltea> db.tea.drop() //删除集合true> show tables school //集合已删除> show dbs //查看库admin 0.000GBconfig 0.000GBlocal 0.000GBpython 0.000GBstady 0.000GB> use pythonswitched to db python> db.dropDatabase() //删除python数据库,首先必须先进数据库,在选择删除{ "dropped" : "python", "ok" : 1 }> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GBstady 0.000GB>
数据的导入导出
导出库中数据
[root@Nginx mongodb]#mongoexport -d stady -c school -o /opt/school.json //导出stady库中的school集合到/opt下,命名为school.json 注意:文件名一定是.json结尾,要在linux模式操作
导入数据到库中
[root@Nginx mongodb]#mongoimport -d stady -c school2 --file /opt/school.json
条件筛选导出
[root@Nginx mongodb]# mongoexport -d stady -c school -q '{"id":{"$eq":3}}' -o /opt/top3.json
备份数据库
mkdir /backup //创建备份文件夹mongodump -d stady -o /backup/
恢复数据库
mongorestore -d chen --dir=/backup/stady
复制数据库
db.copyDatabase() //复制数据库
####实例演示
db.copyDatabase("stady","stady2") //将stady库复制一个副本stady2show dbs //查看所有库show tables //查看库中所有集合
复制集合到新实例
实例演示
mongo -port 27018 //进入新实例db.runCommand({"cloneCollection":"stady.school","from":"172.16.10.27:27017"})
进程管理
实例演示
db.currentOp()db.killOp(1689)
当你觉得某个进程占用资源量特别大时,可以将其结束,当你结束其之后,它又会重新加载,相当于进程初始化
数据
数据库
实例
文件
文档
函数
属性
存储
配置
数组
服务
演示
地址
字符
字符串
语言
进程
处理
查询
管理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
厦门it服务管理软件开发
时代网络技术分类优势
数据库注入安全问题
肥水不流外人田小说软件开发
工业系统网络安全检查
2016年问道手游服务器
h3c服务器前面闪烁黄灯
软件开发调研的步骤
没有公网ip服务器如何搭建网站
数据库入门与提高
数据库 文档管理
兴义联想服务器数据库
摩拜互联网科技大会
郑州会展报馆系统软件开发
数据库物理模型的设计概念
5g网络技术主要分为哪三大类
服务器没问题虚拟机没起来
oasys实时数据库配置
工行软件开发 待遇
数据库索引设计与性能优化
西安比较好的软件开发公司
构建全基因组数据库 云平台
数据库的控制有哪些内容
魔兽四种服务器类型
数据库服务器硬件
22年网络安全宣传周
软件开发和服务外包
新西兰公益广告网络安全
财务 网络安全
网络安全区域vlan区别