node为什么用mongodb?
node使用mongodb的原因:mongodb是一个高性能、无模式、文档性,目前nosql中最热门的数据库;这个数据库具有格式自由、强大的查询语句,基本覆盖sql语言所有能力、支持二进制数据及大型对象(文件)的高效存储等特点。

MongoDB数据库介绍:
MongoDB:是一个数据库 ,高性能、无模式、文档性,目前nosql中最热门的数据库,开源产品,基于c++开发。是nosql数据库中功能最丰富,最像关系数据库的。
MongoDB特性:
面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
完整的索引支持,支持查询计划;
支持复制和自动故障转移;
支持二进制数据及大型对象(文件)的高效存储;
使用分片集群提升系统扩展性;
使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;
MongoDB的不足:
MongoDB对事物的支持较弱: 高度事务性系统,例如银行、财务等系统不适合。
涉及到复杂 的、高度优化的查询方式:传统的商业智能应用,特定问题的数据分析,多数据实体关联等不适合;
数据结构相对固定,使用关系型数据库更好合理,使用sql进行查询统计更加便利的 时候等不适合;
通过上面的分析知道什么情况下使用MongoDB比较合理。下面来分析一下MongoDB在数据安全,灾备,集群容错上做了哪些努力。
第一:Mongodb会不会数据丢失?

可见:在不开启journal日志时是有可能导致数据丢失的(在60s之间或还没有到达2G时服务器宕机),但在开启了journal日志时数据是不会丢失的,Journal 日志类似于关系数据库中的事务日志。Journaling能够使MongoDB数据库由 于意外故障后快速恢复。
MongoDB2.4版本后默认开启了Journaling日志功 能,mongod实例每次启动时都会检查journal日志文件看是否需要恢复。
由于提交 journal日志会产生写入阻塞,所以它对写入的操作有性能影响,但对于读没有影响。 在生产环境中开启Journaling是很有必要的。
第二:MongoDB安全性如何?
MongoDB提供了各种数据库角色和登录验证,不同角色具有不同的操作权限,类似于关系型数据库。如:

想要了解更多前端知识,可访问 前端开发学习!!