NoSQL介绍(七)
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,NoSQL介绍(七)MongoDB介绍官网www.mongodb.comc++编写,基于分布式,属于NoSQL的一种在NoSQL中是最像关系型数据库的MongoDB将数据存储为一种文档,数据结构由键值
千家信息网最后更新 2025年11月07日NoSQL介绍(七)
NoSQL介绍(七)
MongoDB介绍
- 官网www.mongodb.com
- c++编写,基于分布式,属于NoSQL的一种
- 在NoSQL中是最像关系型数据库的
- MongoDB将数据存储为一种文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档、数组及文档数组。
- 因为基于分布式,所以很容易扩展
MongoDB和关系型数据库的对比
| SQL术语概念 | MongoDB术语概念 | 解释说明 |
|---|---|---|
| database | database | 数据库 |
| table | collection | 数据库表/集合 |
| row | document | 数据记录行/文档 |
| column | filed | 数据字段/域 |
| index | index | 索引 |
| table joins | 表连接MongoDB不支持 | |
| primary key | primary key | 主键MongoDB自动将_id字段设置为主键 |
MongoDB安装
官方安装文档 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
vim /etc/yum.repos.d/mongodb-org-3.6.repo[mongodb-org-3.6]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 list | grep mongodbyum install -y mongodb-orgMongoDB的连接
systemctl start mongod.servicenetstat -tlnp|grep mongodtcp 0 0 192.168.221.10:27017 0.0.0.0:* LISTEN 1999/mongod tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1999/mongodmongo --port 27017 --host 192.168.221.10mongo -uusername -ppasswd --authenticationDatabase dbMongoDB用户管理
mongo --port 27017 --host 192.168.221.10> use admin //切换到admin库> db.createUser({user:"admin",customData:{description:"superuser"},pwd:"admin",roles:[{role:"root",db:"admin"}]});> db.system.users.find();> show users;> db.createUser({user:"zs",pwd:"zs",roles:[{role:"read",db:"testdb"}]});//创建zs用户> db.dropUser('zs');//删除用户zs使用用户名,密码连接mongo数据库,需要修改启动脚本并重启
vim /usr/lig/systemd/system/mongod.service //在"OPTIONS="后加"--auth"Environment="OPTIONS=--auth -f /etc/mongod.conf"systemctl daemon-reloadsystemctl restart mongod.servicemongo -u 'admin' -p 'admin' --authenticationDatabase 'admin' //需要指定数据库在数据库db1中创建用户test1对db1库读写,对db2库只读。
> use db1;> db.createUser({user:"test1",pwd:"test1",roles:[{role:"readWrite",db:"db1"},{role:"read",db:"db2"}]});ctrl+dmongo -u 'test1' -p 'test1' --authenticationDatabase 'db1' > use db2;> db.auth("test1","test1"); Error: Authentication failed. //报错,因为用户test1在db1中创建MongoDB用户角色
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建,删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
- root:只在admin数据中可用。超级账号,超级权限
MongoDB创建集合
//db.createCollection(name,options);name就是集合的名字,iptions可选,用来配置集合的参数,参数如下:capped true/false:为true,则启用封顶集合。封顶集合是固定大小的集合,当它达到其最大大小,会自动覆盖最早的条目。如果指定true,则也需要指定尺寸参数。size (可选)指定最大大小字节封顶集合。如果封顶为true,还需要指定这个字段max 指定封顶集合允许在文件的最大数量。> db.createCollection('mycol',{capped:true,size:6142800,max:10000});查看集合
> show tables; 或 show collections创建集合Account并插入内容
> db.Account.insert({AccountID:2,UserName:'lisi',password:'lisi'});查看集合Account的所有内容及条件查询
> db.Account.find();> db.Account.find({AccountID:1});根据条件删除Account集合中的一条记录
> db.Account.remove({AccountID:1});打印集合状态
> db.printCollectionStats();修改集合中的一条记录
> db.Account.update({AccountID:2},{"$set":{age:20}});删除某个集合
> db.Account.drop();
数据
数据库
用户
文档
权限
封顶
字段
管理
最大
参数
大小
内容
函数
分布式
数组
术语
条件
概念
索引
中创
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
民航网络安全国际标准
信息网络安全检查工作会议
dnf单机版服务器没有了
西藏有软件开发吗
互联网科技绿地
计算机网络技术难不难学
网络安全违规行为举报邮箱是什么
软件开发工程师前端职业规划
汕尾数据链软件开发销售厂
中学信息化网络安全管理
西安坤翔互联网科技有限公司
戴尔服务器性能计数器驱动程序
软件开发有哪两类
数据库算法框架
昆明市教育台网络安全
昆山数据网络技术服务价格
我的世界服务器手机版推荐建设
软件开发项目实施进度安排
修改数据库中的字段名称
数据库属于什么数据类型
电子网络技术包括哪些
岳阳深圳网络安全培训费用多少
网络数据库编程语言
新手软件开发是做什么的
华为网络技术面试题库
网安民警网络安全开展
发挥网络安全
东莞网络安全工程师
数据库技术对地铁
学软件开发有什么软件