文档型数据库的灵感来自于Lotus Notes办公软件。其主要目标是在键值存储方式以及传统的关系数据系统之间架起一座桥梁,集两者的优势于一身。其数据主要以JSON或者类JSON格式的文档来进行存储,是有语义的,可以对其值创建索引来方便上层的应用,而这一点是普通键值数据库无法支持的。应用文档数据模型的数据库主要有MongoDB、CouchDB。
MongoDB是一种可扩展、高性能、开源的面向文档的数据库,采用C++开发,支持的数据结构非常松散,是类似JSON的BJSON格式。它最大的特点是支持的查询语言非常强大,其语法类似于面向对象的查询语言。主要解决的是海量数据的访问效率问题,当数据量达到50GB以上时,其访问速度是NoSQL的10倍以上。
CouchDB是Apache组织发布的一款NoSQL开源数据库项目,使用JSON格式保存数据。它的数据结构很简单,字段只有三个:文档ID、文档版本号和内容。CouchDB可以移植到移动设备,还支持分布式节点的精确复制同步。