MongoDB是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。
作为主流的非关系型数据库(NoSQL)产品,MongoDB 很好的实现了面向对象的思想,在 MongoDB 中每一条记录都是一个 Document 对象。MongoDB 最大的优势在于所有的数据持久操作都无需开发人员手动编写 SQL 语句,直接调用方法就可以轻松实现 CRUD 操作。
主要功能:
面向集合的存储:适合存储对象及 JSON 形式的数据。
动态查询:MongoDB 支持丰富的查询表达式,查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组。
完整的索引支持:包括文档内嵌对象及数组,MongoDB 的查询优化器会分析查询表达式,并生成一个高效的查询计划。
查询监视:MongoDB 包含一个监视工具用于分析数据库操作的性能。
复制及自动故障转移:MongoDB 数据库支持服务器之间的数据复制,支持主从模式及服务器之间的相互复制,复制的主要目标是提供冗余及自动故障转移。
高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。
优势和劣势
优势:
1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。
2、MongoDB的高可用和集群架构拥有十分高的扩展性。
3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。
4、MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。
劣势:
1、 不支持事务操作。MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。
2、 应用经验少,由于NoSQL兴起时间短,应用经验相比关系型数据库较少。
3、MongoDB占用空间过大。
mongoose
mongoose是mongoDB的一个对象模型工具,是基于node-mongodb-native开发的mongoDB的nodejs驱动,可以在异步的环境下执行。同时它也是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更加容易。
网友评论