41

There is a great list of various NoSQL database platforms at http://nosql-database.org. It categorizes each as a "wide column store", "document store", "key-value store", or "graph store". What I'm not finding is guidance on how to choose which of those 3 categories is most appropriate for a given problem.

What are the pros/cons or strengths/weaknesses of each type?
Which classes of problems is each type best suited for?

To be clear, I'm asking about distinctions between these 3 types of NoSQL systems and not specific implementations of them.

Robert Levy
  • 28,747
  • 6
  • 62
  • 94

3 Answers3

46

There is a good article (though it doesn't go in depth) on this exact issue on the thoughtworks site.

And this visual guide is excellent as well

Oded
  • 489,969
  • 99
  • 883
  • 1,009
13

After searching around a bunch more, I found that the documentation for RavenDB (a document DB) has a very detailed (and seemingly unbiased) comparison of each of these options, how they work, and where they are most appropriate. For anyone else interested, read Chapter 1 of this document: https://s3.amazonaws.com/daily-builds/RavenDBMythology-11.pdf

Robert Levy
  • 28,747
  • 6
  • 62
  • 94
5

I've asked similar questions (but no real duplicates):

Community
  • 1
  • 1
jgauffin
  • 99,844
  • 45
  • 235
  • 372
  • I really like this blurb from that first link: "Column-family stores such as Bigtable and Cassandra have very limited querying capabilities. The application is responsible for maintaining indexes in order to query a more complex data model. Document databases allow you to query the content, not just the key. It will also manage the indexes for you, reducing the complexity of your application." – Robert Levy Apr 16 '11 at 21:01