关于

今天第一次学习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 等安装完成即可,下图安装路径,建议自定义一下,不推荐安装到系统盘


安装完成

二:配置使用

  1. 创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(logs/mongo.log文件)
  2. 创建配置文件mongo.conf,文件内容如下:
  3. 启动MongoDB服务
    mongod –config “D:\Mongo\mongo.conf”
    这个是使用自己刚刚在上面配置的配置文件来启动服务的。注意修改成自己的目录位置
  4. 创建并启动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 用户角色:

  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 备份恢复角色:backup、restore;
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色: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 安装详解相关推荐

  1. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  2. nagios 3.2安装详解(一)

    Nagios 安装详解 对于运维人员来说,获悉服务器状况的信息非常重要,针对监控服务,比较好的有cacti和nagios,cacti使用更简单一些,cacti主要是用来采集信息,CPU.MEM.流量等 ...

  3. Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

  4. linux下weblogic版本,Linux下weblogic10.3.6(jar)版本安装详解

    一.安装前的准备 安装weblogic是需要JDK环境的,虽然weblogic有自带的JDK,但是我一般是自己选择JDK进行安装,如果你要自行安装,可以参考我的另一篇博客 https://www.cn ...

  5. Windows 下OpenSSL 安装详解 +图解

    Windows 下OpenSSL 安装详解 +图解 转载于:https://www.cnblogs.com/zhujiabin/p/5088646.html

  6. 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 ...

  7. Kafka单机、集群模式安装详解(二)

    本文环境如下: 操作系统:CentOS 6 32位 JDK版本:1.8.0_77 32位 Kafka版本:0.9.0.1(Scala 2.11) 接上篇 Kafka单机.集群模式安装详解(一) 6. ...

  8. 【Linux开发】Linux下jpeglib库的安装详解

    Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...

  9. mysql-8.0.12语法_mysql-8.0.12 (免安装版) 安装详解

    mysql-8.0.12 (解压版) 安装详解 错误解决 第一步:mysql-8.0.12 (解压版) 下载地址:https://www.mysql.com/downloads/ 第二步:配置初始化m ...

最新文章

  1. (C++)1021 个位数统计
  2. 安装启动gui卡住_为什么Windows 10升级安装卡住了,原因在这
  3. Maven学习记录之maven基本操作命令,maven本地工厂的创建,maven骨架的生成,以及在eclipse中创建maven工程:...
  4. 基于IBM Cognos的高级报表制作技巧
  5. 能改变原生web前端元素样式的water.css
  6. 无需充电的太阳能汽车有多强?约17万起,续航高达1609km
  7. 二分查找---查找区间
  8. 数据分析的五个阶段及价值
  9. RabbitMQ消费端自定义监听(九)
  10. Java中的一些术语的解释
  11. selenium webdriver - 截图
  12. 刘汝佳Dijkstra模板
  13. 将MATLAB中不显示个别图例,隐藏图中某些图形对象的MATLAB图例条目
  14. 图像插值理论研究——双三次插值(双立方插值)
  15. GDB 调试 Nginx 磨刀不误砍柴工
  16. Windows XP \Windows 2003启动过程的学习及故障分析处理(六D)
  17. EXCEL中小数点后面的0怎么去掉
  18. BAT用户画像数据浅析
  19. 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
  20. 生命中不仅仅只有代码

热门文章

  1. Python培训课程推荐
  2. Retrofit使用简介
  3. java制作管理系统视频_java语言制作管理系统视频教程
  4. iomanip部分函数功能,流操作的控制
  5. 布尔教育2016最新php教程 PHP基础班+PHP大师班视频教程
  6. linux下float的寄存器,检测x86上Linux的非正常浮动操作(Detecting denormal float operations on Linux for x86)...
  7. 金蝶K3检验单导入导出的修改
  8. 怎么在谷歌地图上画图_如何在Google地图上规划具有多个目的地的公路旅行
  9. 用Go+绘制爱心给心爱的她表白
  10. linux_sw_64,Zabbix使用system.sw.os获取主机信息