NoSQL介绍(七)
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,NoSQL介绍(七)MongoDB介绍官网www.mongodb.comc++编写,基于分布式,属于NoSQL的一种在NoSQL中是最像关系型数据库的MongoDB将数据存储为一种文档,数据结构由键值
千家信息网最后更新 2025年02月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.asc
yum list | grep mongodbyum install -y mongodb-org
MongoDB的连接
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 db
MongoDB用户管理
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.service
mongo -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安全错误
数据库的锁怎样保障安全
正规的存储服务器哪家代理商专业
网络安全VNP
frp服务器连接win客户端
旧唐书下载软件开发
江苏gps卫星授时服务器云主机
启动ipsec服务器
临沂智慧党建软件开发软件
互联网科技创新与应用
信息化软件开发收费标准
石湾租房网络安全
写入代理服务器设置时出错
gprs与服务器通信
杭州云象网络技术上市
大数据专业和软件开发专业区别
王者荣耀服务器ip
红海ehr服务器地址查找
lotus办公服务器mac
Oppo查找手机提示服务器异常
服务器怎么管理ftp
机器人软件开发师月薪
iphone软件开发团队工具
西安有德网络技术有限公司
dba数据库的职责
网络安全文明知识竞赛题
网络技术及系统
mysql导出数据库语句
什么是服务器管理软件
丰镇软件开发项目管理
稳定的郑州直销软件开发
服务器怎么管理ftp