MongoDB

MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need

上面是mongodb官方网站对 mongoDB的描述。mongoDB有什么不一样的地方?

特点1:flexibility

可以很方便的扩展结构,使用JSON-like的结构来保存document。使用过mysql的人应该深有体会,添加一个字段是多么的痛苦。

在mongodb的官方文档,是这样评价Document Model的: The best way to work with Data。

主要从下面4个方面来论证:

Easy

关系数据库使用tabular data model,由于数据规范化的要求,一个现实中的实体,经常需要好多表来表示。 带来的问题是:开发效率降低。虽然可以通过ORM层(object-relational mapping layer)来解决,但是也是会带来其他问题。

对比之下,mongo使用了document data model,document可以以更加自然的方式来描述数据,就是使用一个单一的文档,把相关的数据作为sub-document嵌入其中。

Flexible

document的格式可以随便变更,确实很方便。但是会带来其他的问题么?

Fast

mongoDB的数据模型,性能会更好?关系数据库可以JOIN,JOIN的性能确实不好。Mongo因为一个实体被映射为单个文档,所以不需要JOIN,所以性能更好。。虽然也提供了类似JOIN的功能:$lookup,可以跨不同的collection之间。

Versatile (多功能)

参考: