Yum安装MongoDB及数据库管理
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,MongoDB简介MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能
千家信息网最后更新 2025年11月07日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.ascyum安装
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安全错误
数据库的锁怎样保障安全
网络技术专升本学什么专业
黑暗之魂1服务器登不上
jdk没有带db数据库
服务器双机热备软件有哪些
打字慢影响学习数据库吗
数据库搜索框
数据运营能接触到数据库吗
西宁软件开发成交价
英雄联盟显示服务器丢失
学好软件开发需要哪些
类似八爪鱼采集器软件开发
数据库连接池c
浪潮服务器查看参数配置
定位软件开发没有key
如何进入局域网服务器
数据库程序设计流程
cs1.6服务器补丁
软件开发方面党风廉政风险分析
plsql记录的数据库密码
服务器管理器开机弹出
网络技术专升本学什么专业
北京电子软件开发多少钱
服务器pci报错
打字慢影响学习数据库吗
中通吉网络技术咋样
嵌入式软件开发是啥
目前最火的软件开发行业
浏览器访问服务器加载太慢
定位软件开发没有key
嘉定区网络技术服务售后保障