关于

今天第一次学习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. Mysql数据库误删除数据恢复成功
  2. java里面快速排序_Java:快速排序
  3. 极简静态 Web 服务器
  4. MVC自定义路由的配置,必须把自己的路由写在前面
  5. powerDesign导出word操作步骤
  6. Android 打开第三方APP
  7. 要想Essay写得好,切记要警惕这六大禁区
  8. quadro 2000专业显卡 win7计算机体验指数5.9,quadro显卡天梯图小虫_quadro专业显卡天梯图小虫2020年 - 系统家园...
  9. js实战案例--创建一个电脑对象
  10. 4.6 linux文件系统-虚拟文件系统VFS
  11. 迷宫小游戏Java实现
  12. 虚拟化技术——VLAN策略
  13. 入行程序员培训还是不培训
  14. 今天兼职的那份工作,安排了休息
  15. 几款H桥电机驱动芯片直流有刷电机驱动芯片性能分析
  16. 简易双人坦克大战制作流程(一)
  17. 2020-09-07-中国人寿两年java岗位一面
  18. 拿到 970 万美元融资的INTURN,想靠SaaS 技术改造庞大的时尚行业
  19. 发现今年是阿里和腾讯这么多年来最大规模的校招
  20. 机器学习-机器学习十大算法

热门文章

  1. 教授专栏16 | 李家涛: 善用科技拓新价值 是经营致胜关键
  2. 音乐专业又和计算机有关的吗,计算机音乐专业介绍
  3. 浙大PTA拼题A读者验证码刷题页面、PTA免费刷题页面(不需要读者验证码)
  4. 2019,华为云走出“混沌”
  5. android b571 版本,HUAWEI Mate 7 EMUI 4.0.1 B571 版本发布说明及问题反馈
  6. JavaSE学习---I/O流学习分享
  7. ACM_置换群 burnside引理 Polya定理
  8. Zero-Shot Transfer Learning for Event Extraction
  9. matlab PCA(Principal Component Analysis)主成分分析作图 2D|3D带有参数指向 案例
  10. Github博客+腾讯云域名的快捷绑定方案