Document data stores

These data stores are shemaless or schemafree, meaning that the records in the same logical container (table or collection or ...) can be of a different structure each. In other words, two consecutive records can have different number of columns, each of different type. More, each column can hold another record with its own set of columns, creating nested records.


MongoDB

Positive

Negative

  1. Schemaless (schema evolves with application)
  2. Richer queries
  3. Sharding (horizontal scaling)
  4. Replication and failover support
  5. Buckets
  6. Multi-language (+/-20)
  7. CP of CAP
  1. Transactions (no transactions on distributed system)
  2. Fractal data storage (data in data)
  3. No joins possible
  4. Memory usage
  5. No SQL interface
  6. Weak security

 


You can find more information on MongoDB on this site.
We have some more detailed description and some implementation procedures we made to do some (limited) benchmarking.

Recommended use:
  • Dynamic queries on big DB
  • RDBMS replacement for web applications
 

OrientDB

Positive

Negative

  1. Supports Graph, Document, Key/Value, and Object models
  2. User DB & security
  3. SQL interface
  4. Java based (REST API)
  5. Sharding
  1. Storage utilization
  2. Dense graphs can be a problem

 


Recommended use:
  • When graph oriented datastores are needed, like searching routes in social relations, public transport links, road maps, or network topologies
.

CouchBase

Positive

Negative

  1. Can be used as a document or key/value store or a distributed cache
  2. Built-in role-based access control and audit
  3. Highly scalable, fault tolerant
  4. Mobile version will synchronize data with main server when network connection available
  5. Support JSON documents
  1. Not for a data warehouse
  2. Support costs depend on the data size
  3. Queries are made through views and MapReduce jobs
  4. Must use the CouchBase libraries to be informed of any cluster topology change (thick client concept)

Recommended use:
  • Always-On NoSQL database with delayed synchronization
  • Mobile applications needing access to data, even without network connection
  • Operational data store
  • Real-time access to data