NOsql之MongoDB入门分享

目录

一、MongoDB简介

1、概念理解

2、yum安装部署

3、二进制安装部署

4、配置文件解析 

二、MongoDB基本管理

1、登录操作

2、管理命令

3、用户管理


一、MongoDB简介

1、概念理解

关系型数据库(RDBMS:Relational Database Management System)
MySql、Oracle、DB2、SQL Server…关系型数据库中全都是表
非关系型数据库(No Sql --Not only sql)(Sql:结构化查询语言)
MongoDB(文档数据库,json格式)、Redis…键值对数据库Mongodb逻辑结构              MySQL逻辑结构库database       ======       库集合(collection) ======       表文档(document)   ======       数据行

2、yum安装部署

vim /etc/yum.repo.d/mongodb.repo
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
#添加mongodb的yum源
yum  install -y mongodf-org
#直接yum安装
systemctl  start mongod
#启动mongod服务
mongo
#本地直接登录mongodb数据库

3、二进制安装部署

useradd mongod
passwd mongod
#创建用户
mkdir -p /data
mkdir -p /mongodb/conf
mkdir -p /mongodb/log
mkdir -p /mongodb/data
#创建MongoDB需要的目录
cd   /data
tar xf mongodb-linux-x86_64-rhel70-3.6.12.tgz 
cp -r /data/mongodb-linux-x86_64-rhel70-3.6.12/bin/ /mongodb
#上传压缩包并解压到指定目录,安装包官网下载网址:https://www.mongodb.com/
chown -R mongod:mongod /mongodb
#配置目录权限给mongod用户
su - mongod
vi .bash_profile
export PATH=/mongodb/bin:$PATH
source .bash_profile
#登录mongod用户配置环境变量
mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork 
#启动mongod服务并指定log文件和端口等
mongo
#本地直接登录mongodb数据库

4、配置文件解析 

yum配置文件位置:/etc/mongod.conf
vim /etc/mongd.conf
①第一个模块
systemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongod.log
#管理系统日志存储是否开启及存储方式和存储位置
②第二个模块
storage:dbPath: /var/lib/mongojournal:enabled: true
#管理系统数据存储位置及是否启用日志
③第三个模块
processManagement:fork: true  # fork and run in backgroundpidFilePath: /var/run/mongodb/mongod.pid  # location of pidfiletimeZoneInfo: /usr/share/zoneinfo
#管理进程运行方式前台/后台运行,pid存储位置以及时区信息
④第四个模块
net:port: 27017bindIp: 0.0.0.0
#管理网络的监听端口和监听地址
⑤第五个模块
security:authorization: enabled
#安全模块管理是否开启安全认证,开启后需要验证账户密码和验证库,否则无进入无操作权限

二、MongoDB基本管理

1、登录操作

mongo
#直接本地用户登录
mongo    -uroot    -proot123    192.168.30.17/admin
#root用户远程登录mongodb,-u指定用户,-p指定密码 192.168.30.17mongodb的地址,admin为验证库(远程登录用户不指定验证库即使登录成功也无法进行操作)

2、管理命令

①库级别命令操作
db.help()
#查看库帮助,help()可以理解为函数操作时可以像命令一下使用tab补全
use test(库名)
#进入test库如果没有此库则自动创建,注意若库中无集合则切换到其他库后会自动删除此库
show   databases
show   dbs
#查看有哪些库
db.createCollection("集合名")
#表中创建集合
②表(集合)级别命令操作
db.集合.help()
#查看集合帮助,help()可以理解为函数操作时可以像命令一下使用tab补全
show    tables
#查看库中有哪些集合
db.集合.insert({键1:"值1",键2:"值2",等...})
#集合中添加数据,如果没有此集合则自动创建此集合并将文档写入集合中,json格式
db.集合.find({})
#查看集合中的内容,可以在({})中写筛选条件例如db.log1.find({id:"2"})查看log1集合中的id为2的文档
DBQuery.shellBatchSize=数量;
#db.集合.find({})默认是20行文档为1页,输入it则看下一页内容。此函数可以调整每页显示的数量如数量除配置50则没页显示50行文档输入it则看下一页内容
db.集合.find({}).pretty()
#加.pretty()可以更完美的展示,以json文档格式显示出集合中的数据
db.集合.findOne({})
#只查看集合的第一行文档
db.集合.count({})
#统计集合中有多少行文档,会输出一个值则为文档数
db.集合.remove({})
#删除集合中所有文档但不删除集合,可以({})中写筛选条件例如db.log1.remove({id:"1"})删除log1集合中id为1的文档
db.集合.drop()
#删除整个集合包括其中的文档
db.旧集合名.renameCollection("新集合名")
#修改集合名称
③系统命令级别
db
#查看当前处于那个库
db.集合.stats()
#查看集合存储信息
db.集合.dataSize()
#查看集合中数据的原始大小
db.集合.totalIndexSize()
#查看集合中索引数据的原始大小

3、用户管理

 验证库:MongoDB的特殊安全验证,开启后远程登录除了输入账户密码外还需要在远程登录的ip后跟上验证库否则无法对库进行正常操作。

用户权限:必须use到某个库创建用户,一般管理那个库就use到哪个库创建用户,管理员用户除外(一般管理员用户在admin库创建)。权限分配角色管理,一共三种包括管理员(root)、只读(read)、可读可写(readWrite)

①创建管理员用户
use    admin
#进入验证库,管理员用户的验证库一般为admin库
db.createUser(
{user:"test01",pwd:"test123",roles:[ {role:"root",db:"admin"}]
}
)
#创建一个test01的系统用户,密码为test123,角色权限为root管理员,管理库为admin
#若创建其他普通用户则进入所管理的库作为验证库,分配权限时给read只读或readWrite
②创建一个普通用户管理多个库并对多个库拥有不通权限
use    test02
#建议以权限更高的管理库为验证库,以其他库为验证库也可
db.createUser(
{user:"test02",pwd:"test123",roles:[{role:"readWrite",db:"test02"},{role:"read",db:"test01"}]
}
)
#创建普通用户test02对test02库有可读可写权限,test01库只有可读权限
db.dropUser("用户名")
#删除用户,注意要在对应的验证库中删除用户
use    admin
show    tables
db.s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/17160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32-风速传感器(ADC)

目录 0 说明 1 传感器介绍 2 代码说明 2.1 ADC.c 2.2 adc.h 2.3 main.c 0 说明 本篇文章主要是说明怎么使用STM32单片机读取风速传感器采集到的数据,读取方式是ADC,并且附带着STM32所需要的全部代码,所使用的风速传感器如下图所示。 附&am…

IDEA的基础使用——【初识IDEA】

IDEA的基础使用——【初识IDEA】 文章目录 IDEA简介前言官网 IDEA的下载与安装选择下载路径勾选自己需要的其余按默认选项进行即可 目录简介安装目录简介 运行Hello WorldIDEA快捷键常用模板模板一:psvm(main)模板二:模板三&#…

PHP-Mysql好运图书管理系统--【白嫖项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 首页必要的项目知识ThinkPHP的MVCThinkTemplateThinkPHP 6和ThinkPHP 5 phpStudy 设置导数据库前台展示页面后台的管理界面数据库表结构项目目录如图:代码部分&a…

【c语言初级】c++基础

文章目录 1. C关键字2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.2 C函数重载的原理--名字修饰采用C语言编译器编译后结果 1. C关键字 C是在C的基础之上,容纳进去了面向对象编程思想…

android studio 找不到符号类 Canvas 或者 错误: 程序包java.awt不存在

android studio开发提示 解决办法是: import android.graphics.Canvas; import android.graphics.Color; 而不是 //import java.awt.Canvas; //import java.awt.Color;

JNPF-一个真正可拓展的低代码全栈框架

一、前言 尽管现在越来越多的人开始对低代码开发感兴趣,但已有低代码方案的一些局限性仍然让大家有所保留。其中最常见的担忧莫过于低代码缺乏灵活性以及容易被厂商锁定。 显然这样的担忧是合理的,因为大家都不希望在实现特定功能的时候才发现低代码平台…

iOS--frame和bounds

坐标系 首先,我们来看一下iOS特有的坐标系,在iOS坐标系中以左上角为坐标原点,往右为X正方向,往下是Y正方向如下图: bounds和frame都是属于CGRect类型的结构体,系统的定义如下,包含一个CGPoint…

ConcurrentHashMap底层具体实现以及实现原理

问题描述 ConcurrentHashMap 底层具体实现以及实现原理 分析维度: 1. ConcurrentHashMap的整体架构 2. ConcurrentHashMap的基本功能 3. ConcurrentHashMap在性能方面的优化 解决方案: ConcurrentHashMap 的整体架构 如图所示,这个是 Concu…

清风数学建模——层次分析法

层次分析法 文章目录 层次分析法评价类问题可以用打分来解决1.通过查阅资料选定指标2.画出权重表格并填写2.1.判断矩阵一致矩阵2.3一致性检验的步骤先算一致性指标CI根据表格查找n对应的RI(平均随机一致性指标),表格一般会在题目中给出计算一…

【iOS】—— UIKit相关问题

文章目录 UIKit常用的UIKit组件懒加载的优势 CALayer和UIView区别关系 UITableViewUITableView遵循的两个delegate以及必须实现的方法上述四个必须实现方法执行顺序其他方法的执行顺序: UICollectionView和UITableView的区别UICollectionViewFlowLayout和UICollecti…

uniapp scroll-view显示滚动条

在style中添加样式: ::v-deep ::-webkit-scrollbar {/* 滚动条整体样式 */display: block;width: 10rpx !important;height: 10rpx !important;-webkit-appearance: auto !important;background: transparent;overflow: auto !important;}::v-deep ::-webkit-scroll…

大数据Flink(五十一):Flink的引入和Flink的简介

文章目录 Flink的引入和Flink的简介 一、Flink的引入 1、第1代——Hadoop MapReduce

RK809 电源管理芯片配置3-RK3568

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言RK809 芯片概述认识DCDC和LDORK809的引脚RK809 的功能电源管理的概念配置内核驱动电源域IO 电源域配置方法前言 前面提到编译的时候需要正确配置电源,RK3568的电源管理芯片是RK809,下面就来…

精选算法题(4)——字符串比较

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 好久没做题目了,近期刷抖音碰到一个题目,乍一看不是很难,但是手生了&a…

HTTP——HTTP报文内的HTTP信息

HTTP 通信过程包括从客户端发往服务器端的请求及从服务器端返回客户端的响应。本章就让我们来了解一下请求和响应是怎样运作的。 HTTP 一、HTTP报文二、请求报文及响应报文的结构三、编码提升传输速率1、报文主体和实体主题的差异2、压缩传输的内容编码3、分割发送的分块传输编…

HCIP——前期综合实验

前期综合实验 一、实验拓扑二、实验要求三、实验思路四、实验步骤1、配置接口IP地址2、交换机配置划分vlan10以及vlan203、总部分部,骨干网配置OSPF分部总部骨干网 4、配置BGP建立邻居关系总部骨干网分部 5、发布用户网段6、将下一跳改为本地7、允许AS重复8、重发布…

【Linux】 UDP网络套接字编程

🍎作者:阿润菜菜 📖专栏:Linux系统网络编程 文章目录 一、网络通信的本质(port标识的进程间通信)二、传输层协议UDP/TCP认识传输层协议UDP/TCP网络字节序问题(规定大端) 三、socket编…

第十三章 利用PCA简化数据

文章目录 第十三章 利用PCA简化数据13.1降维技术13.2PCA13.2.1移动坐标轴 13.2.2在NumPy中实现PCA13.3利用PCA对半导体制造数据降维 第十三章 利用PCA简化数据 PCA(Principal Component Analysis,主成分分析)是一种常用的降维技术&#xff0…

剑指offer41.数据流中的中位数

我一开始的想法是既然要找中位数,那肯定要排序,而且这个数据结构肯定要能动态的添加数据的,肯定不能用数组,于是我想到了用优先队列,它自己会排序都不用我写,所以addNum方法直接调用就可以,但是…

MAC电脑设置charles,连接手机的步骤说明(个人实际操作)

目录 一、charles web端设置 1. 安装charles之后,先安装证书 2. 设置 Proxy-Proxy Settings 3. 设置 SSL Proxying 二、手机的设置 1. 安卓 2. ios 资料获取方法 一、charles web端设置 1. 安装charles之后,先安装证书 Help-SSL Proxying-Inst…