Document Databases Compared: MongoDB, CouchDB, and RavenDB

Hopefully my last post, An Introduction to Document Databases, piqued your interest in this new frontier for database technology.

So, how do the different document databases compare?  Let's take a look.

 

MongoDB

CouchDB

RavenDB

Documents

Format

BSON

JSON

JSON

Metadata

No

System

System + Custom

Versioning

No

Yes

Included Plug-in

Attachments

GridFS

Yes

Yes

Map/Reduce

JavaScript + others

JavaScript

LINQ

Bulk Load

Monogoimport utility

Yes

Yes

Adhoc Query

Yes

No

No

Storage

Sharding

Available in 1.6

Yes

Yes

Durability

Single Server will be available in 1.8

"crash-only" design

write ahead logging and snapshot isolation for guaranteed crash recovery via ESE

Transactions

No

No

Yes

Concurrency

Update in-place

MVCC (Multi-version Concurrency Control)

Optimistic concurrency

Consistency

Strong Master /
Eventual Slave

Strong Node /
Eventual Cluster

Eventual

Replication

Master-Slave

Peer-based

Included Plug-in

Interface

Interface Protocol

Custom protocol over TCP/IP

HTTP/REST

HTTP/REST

.NET API

3rd Party Projects

3rd Party Projects

Included

Other

Triggers

No

Update Validation

Security

Yes

Security

Basic

Basic

Basic using included plug-in

Written In

C++

Erlang

C#

 

 

There it is.  The most comprehensive comparison on the planet!  Of course, if you have any corrections or additions, please let me know.

 

 

UPDATE [1]: Corrected replication

 

UPDATE [2]: You may also want to take a look at my book - RavenDB High Performance


 

 

5 Comments

Comments have been disabled for this content.