NoSQL介绍(七)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,NoSQL介绍(七)MongoDB介绍官网www.mongodb.comc++编写,基于分布式,属于NoSQL的一种在NoSQL中是最像关系型数据库的MongoDB将数据存储为一种文档,数据结构由键值
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
喔噻互联网科技有限公司
上海睿民互联网科技有限公司
河南云网互联网络科技有限公司
互联网为科技
互联网科技资迅
凡科互联网科技
长亮科技互联网金融
互联网科技创新企业排名
安控科技rtu产品工业互联网
农村开互联网科技讲堂
深圳国际航运科技和互联网
互联网对科技的发展
深圳育鹏互联网科技有限公司招聘
996高科技互联网公司
东莞新华互联网科技学校
用友工业互联网科技发展
南博望互联网科技有限公司
工业互联网展湾科技股份有限公司
易租星互联网科技有限公司
恒生科技指数 中概互联网
小米移动互联网科技园
涨乐互联网科技
重庆互联网络科技
以房互联网科技
中国互联网科技发展
米客互联网科技
互联网科技有哪些公司
互联网科技人工智能实验室
互联网科技如何创业
现代科技的标志之一的互联网