Mongodb 安装详解
关于
今天第一次学习mongodb 遇到很多困难, 网上看了很多博客,发现解决方案都不是很好, 可能是比较菜 嘻嘻 一开始连什么是Mongodb 都不知道,而博客是会告诉我怎么安装,这搞得我很被动,一脸茫然,所以今天我就来写篇博客让大家都能了解 Mongodb ,如果觉得对你有一定帮助,就请大佬关注一下子,这是对我最大的肯定谢谢啦!
什么是MongoDB
- MongoDB是一个基于分布式文件存储 [1] 的数据库。由 C++ 语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
- MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
1. 从上面我们知道 MongoDB 是用 C++ 编写的
2. MongoDB 的数据结构和json差不多
3. MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统
如果还不明白我们来看一副概念图,他和普通数据库的区别帮助你更容易理解MongoDB 的概念
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
通过下图实例,我们也可以更直观的了解Mongo中的一些概念:
面试题
以下是我在面试,收集到的MongoDB面试题
- 你说的NoSQL数据库是什么意思?
- NoSQL与RDBMS直接有什么区别?
- 为什么要使用和不使用NoSQL数据库?
- 说一说NoSQL数据库的几个优点?
- MongoDB成为最好NoSQL数据库的原因是什么?
- 名字空间(namespace)是什么?
- 如果用户移除对象的属性,该属性是否从存储层中删除?
- 什么是master或primary?
答案 :建议大家自己去百度,这样记得更牢固,
下载和安装MongoDB
为了方便大家下载这里准备两种下载方式
网盘: 网盘点击这里 密码 ctyy
官网下载
点击DOWNLOAD按钮,开始下载
不过值得注意的是,上次测试了最新版本,在官网下载安装之后没有mongo.exe和mongod.exe
因此我又卸载了官网版本,使用解压包重新安装,解压包版本如下:
有兴趣的话还是可以从官网下载,然后观察下差异
安装过程一路Click Next然后 Click Install 等安装完成即可,下图安装路径,建议自定义一下,不推荐安装到系统盘
安装完成
二:配置使用
- 创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(logs/mongo.log文件)
- 创建配置文件mongo.conf,文件内容如下:
- 启动MongoDB服务
mongod –config “D:\Mongo\mongo.conf”
这个是使用自己刚刚在上面配置的配置文件来启动服务的。注意修改成自己的目录位置
- 创建并启动MongoDB服务
如果每次都如上操作,岂不是相当麻烦,按照如下命令来创建并启动MongoDB服务,就可以通过windows服务来管理MongoDB的启动和关闭了
mongod –config “D:\Mongo\mongo.conf” –install –serviceName “MongoDB”
net start MongoDB
执行完之后,就可以去服务里看是否有成功创建了
接下来使用Robomongo客户端管理工具就可以连接,后因收购被改名为Robo 3T CSDN 获取地址
Nice,连接成功,如下图
MongoDB会默认创建admin和local库,不过刚才安装的Mongodb并不需要权限验证,如果数据安全性不需要很高,则可以安装不需要验证的db库,通过设置服务器之间的白名单做到访问安全
三:安装Authorization校验的MongoDB
需要注意的是:如果之前安装MongoDB时不需要 Auth,那么必须卸载MongoDB服务,进行重新安装,设置账号权限才生效!
首先卸载之前的mongodb服务,接着删除data文件夹下所有东西,再清空log
然后再次注册个服务的话,命令多添加个 –auth
mongod –config “D:\Mongo\mongo.conf” –auth –install –serviceName “MongoDB”
net start MongoDB
此时就可以用Robomongo工具进行连接试一下
mongod.exe --remove --serviceName "MongoDB"
mongod --config "D:\Mongo\mongo.conf" --auth --install --serviceName "MongoDB"
net start MongoDB
use admin
db.createUser({user: "admin",pwd: "password",roles: [ { role: "root", db: "admin" } ]});
exit
e.g. 新建数据库
mongo --port 27017 -u admin -p password --authenticationDatabase admin
创建数据库lxkdb,当在这个数据库写入数据的时候,这个数据库就出现了
use minily
创建普通账户
db.createUser({user: "minily",pwd: "password",roles: [{ role: "readWrite", db: "minily" }]});
选择刚刚创建的数据库
use minily
然后进行数据库权限的认证,返回1就是认证OK,0就是认证失败。这个也是重点,在操作数据库之前要有那么一次的权限认证
db.auth('minily','password')
新建Collection,并添加一条数据
db.student.save({name: 'zhangsan', age: 25, sex: true});
在数据库minily中,插入一条数据,这个表叫student
show collections
显示当前数据库有的集合,也就是表
db.student.find()
查student表全部
·以上操作在Robomongo工具上来实现,简直不要太爽
·索引等进阶知识可以看官网
db.collection.createIndex()
roles 用户角色:
oles 用户角色:
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
快速启动和停止服务的快捷键
a. net start serviceName
net stop serviceName
最后,每次要在命令行使用mongo命令,都得进入到对应的bin目录下,这样很是麻烦,配置个系统环境变量,方便直接使用
这样就可以直接在cmd命令行,不需要进行目录切换,就可以直接使用 mongo.exe 命令
—————————常用命令以及T-SQL增删改查语句————————————–
查看表基本信息:db.getCollection(‘AUDCAD’).stats() 类似于MySql的EXPLAIN
倒序查询数据:db.getCollection(‘AUDCAD’).find({}).sort({field:-1})
命令
- show dbs; #查看全部数据库
- show collections; #显示当前数据库中的集合(类似关系数据库中的表)
- show users; #查看当前数据库的用户信息
- use ; #切换数据库跟mysql一样
- db;或者db.getName(); #查看当前所在数据库
- db.help(); #显示数据库操作命令,里面有很多的命令
- db.foo.help(); #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
- db.foo.find(); #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
- db.foo.find( { a : 1 } ); #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
- db.version(); #当前db版本
- db.getMongo(); #查看当前db的连接机器地址
- db.dropDatabase(); #删除数据库
好了,那我们就写到这里了,希望不懂的地方还请大家多多指教
Mongodb 安装详解相关推荐
- Linux下boost库的编译、安装详解
1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...
- nagios 3.2安装详解(一)
Nagios 安装详解 对于运维人员来说,获悉服务器状况的信息非常重要,针对监控服务,比较好的有cacti和nagios,cacti使用更简单一些,cacti主要是用来采集信息,CPU.MEM.流量等 ...
- Win10 TensorFlow(gpu)安装详解
Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...
- linux下weblogic版本,Linux下weblogic10.3.6(jar)版本安装详解
一.安装前的准备 安装weblogic是需要JDK环境的,虽然weblogic有自带的JDK,但是我一般是自己选择JDK进行安装,如果你要自行安装,可以参考我的另一篇博客 https://www.cn ...
- Windows 下OpenSSL 安装详解 +图解
Windows 下OpenSSL 安装详解 +图解 转载于:https://www.cnblogs.com/zhujiabin/p/5088646.html
- CentOS下Hive2.0.0集群模式安装详解
本文环境如下: 操作系统:CentOS 6 32位 Hive版本:2.0.0 JDK版本:1.8.0_77 32位 Hadoop版本:2.6.4 MySQL版本:5.6.30 1. 准备工作 1.1 ...
- Kafka单机、集群模式安装详解(二)
本文环境如下: 操作系统:CentOS 6 32位 JDK版本:1.8.0_77 32位 Kafka版本:0.9.0.1(Scala 2.11) 接上篇 Kafka单机.集群模式安装详解(一) 6. ...
- 【Linux开发】Linux下jpeglib库的安装详解
Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...
- mysql-8.0.12语法_mysql-8.0.12 (免安装版) 安装详解
mysql-8.0.12 (解压版) 安装详解 错误解决 第一步:mysql-8.0.12 (解压版) 下载地址:https://www.mysql.com/downloads/ 第二步:配置初始化m ...
最新文章
- (C++)1021 个位数统计
- 安装启动gui卡住_为什么Windows 10升级安装卡住了,原因在这
- Maven学习记录之maven基本操作命令,maven本地工厂的创建,maven骨架的生成,以及在eclipse中创建maven工程:...
- 基于IBM Cognos的高级报表制作技巧
- 能改变原生web前端元素样式的water.css
- 无需充电的太阳能汽车有多强?约17万起,续航高达1609km
- 二分查找---查找区间
- 数据分析的五个阶段及价值
- RabbitMQ消费端自定义监听(九)
- Java中的一些术语的解释
- selenium webdriver - 截图
- 刘汝佳Dijkstra模板
- 将MATLAB中不显示个别图例,隐藏图中某些图形对象的MATLAB图例条目
- 图像插值理论研究——双三次插值(双立方插值)
- GDB 调试 Nginx 磨刀不误砍柴工
- Windows XP \Windows 2003启动过程的学习及故障分析处理(六D)
- EXCEL中小数点后面的0怎么去掉
- BAT用户画像数据浅析
- 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
- 生命中不仅仅只有代码
热门文章
- Python培训课程推荐
- Retrofit使用简介
- java制作管理系统视频_java语言制作管理系统视频教程
- iomanip部分函数功能,流操作的控制
- 布尔教育2016最新php教程 PHP基础班+PHP大师班视频教程
- linux下float的寄存器,检测x86上Linux的非正常浮动操作(Detecting denormal float operations on Linux for x86)...
- 金蝶K3检验单导入导出的修改
- 怎么在谷歌地图上画图_如何在Google地图上规划具有多个目的地的公路旅行
- 用Go+绘制爱心给心爱的她表白
- linux_sw_64,Zabbix使用system.sw.os获取主机信息