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


 

 

Published Tuesday, August 17, 2010 10:35 PM by brian_ritchie

Comments

# re: Document Databases Compared: MongoDB, CouchDB, and RavenDB

Security for RavenDB now also available via plug-in. Check  in sources:

ravendb\Bundles\Raven.Bundles.Authorization\

Thursday, August 19, 2010 3:00 AM by andrexx

# re: Document Databases Compared: MongoDB, CouchDB, and RavenDB

"piqued your interest" </pedantry>

Friday, August 20, 2010 12:00 PM by Mark

# re: Document Databases Compared: MongoDB, CouchDB, and RavenDB

The sones GraphDB is the first graph database which is available on Microsoft Windows Azure. Since the sones GraphDB is written in C# and based upon Microsoft .NET it can run as an Azure Service in it’s natural environment. No Wrapping, no glue-code. It’s the performance and scalability a customer can get from a on-premise hosted solution paired with the elasticity of a cloud platform.

Saturday, October 2, 2010 12:47 AM by seo melbourne

# re: Document Databases Compared: MongoDB, CouchDB, and RavenDB

RavenDB now supports adhoc querying since you posted this.

Thursday, January 6, 2011 3:48 PM by Simon Bartlett

# re: Document Databases Compared: MongoDB, CouchDB, and RavenDB

RavenDB Corrections:

Support for AdHoc querying for some time now.

I believe it can be run cross platform using the Munin (non ESE or ESENT) engine which I believe can run on mono as well.

Friday, February 10, 2012 5:47 AM by bbqchickenrobot