对于mongoDB的理解

mongoDB是什么

官方解释:
MongoDB 是一个基于分布式的文件存储数据库,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。
通俗来说:
MongoDB 将数据存储为一个文档(类似于 JSON 对象),数据结构由键值对组成,类似于 Java 中的 Map,通过 key 的方式访问起来效率就高得多

安装 mongoDB

百度(社区版官网下载地址: [https://www.mongodb.com/download-center/community])

mongoDB中的几个关键的概念

对于mongoDB的理解

mongoDB的特点

①存储时直接存储bson,可以直接插入各种复杂的数据类型,并且文档的key和value不是固定的数据类型和大小,在使用MongoDB时无须预定义关系型数据库中的”表”等数据库对象,设计数据库将变得非常方便
所谓bson就是二进制的json:
对于mongoDB的理解

②自带副本集的概念,实现负载均衡时无需额外的中间件;
在拓展时也有自带的mongos集群,可以通过添加mongo分片的方式进行水平拓展
③ 数据处理方式是基于内存的:将热数据存放在物理内存中,从而达到高速读写
证明一下:
目前只有四个库(admin config local为默认库
对于mongoDB的理解
创建并使用新库
对于mongoDB的理解
重新查询,这里还是只有刚才的四个库
对于mongoDB的理解
查看当前使用的库
对于mongoDB的理解
插入数据后再使用show dbs查询库:说明库已经被写入到磁盘
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HtrzFP6l-1591513740409)(在这里插入图片描述)]](https://img-blog.csdnimg.cn/20200607150851774.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dvcmtlcw==,size_16,color_FFFFFF,t_70)

mongoDB和mysql的区别

除了上面那些之外,他们还有这些区别:
①mongoDB查询方式类似JavaScript的函数,而MySQL使用sql语句
②mongoDb仅支持单一文档事务,MySQL根据不同存储引擎来判断是否支持事务(innodb是支持事务的,myisam不支持事务)
③mongoDB不支持join操作

什么时候使用mongoDB

①较大量的刷新频率较高的数据(少量可以使用redis)
②对事务要求不高或没有要求的数据
③字段(文档·)较少
④数据模型随时会改变
⑤会用

mongoDB的缺点

其实在上面基本已经将完mongoDB的缺点了 这里做下总结
①不支持事务,难以保证一致性
②查询方式不如sql语句效率高
③存储空间的浪费(mongoDB在删除会将数据标记为“已删除”而并不是直接从磁盘中删除掉)
补充:repairDatabase是官方文档中认为唯一可以回收硬盘空间的方法。