8

I've read several posts, such as this one, that compare document stores like MongoDb, CouchDb and CouchBase with column family stores like Cassandra.

One comparison is the fact that document stores work at a higher level of granularity as opposed to column family stores that let you work on individual parts of the document. I find that to be simply untrue because Redis supports this via the hset operation and so does mongodb.

Is the argument then, that although both types of solutions allow updating / reading parts of a document, column family stores are simply more efficient at doing this than document stores?

Does that also mean that I should take the document store route for insert and read heavy applications but the column family route for update and read heavy applications?

What are some other differences that would help me choose one solution over the other?

Thanks!

Community
  • 1
  • 1
Kailash
  • 785
  • 1
  • 8
  • 17

1 Answers1

9

I would suggest that the main difference is in the query model. They can both store similar data structures (you can put a JSON document into a CF store, for example), but document stores typically give you query-by-value capability whereas CF stores typically do not. However the lines are blurring, and it seems that such generalizations are becoming less applicable as each database project matures. Cassandra (a popular CF store), for example, does offer some query-by-value functionality with secondary indexes. However most CF stores require you to write the data the way you intend to read it, meaning you must think about your data model in terms of your queries.

It would seem to me that there are other equally important distinctions between various database technologies, such as consistency model, datacenter replication capability, scaling model, ease of management, caching capabilities, etc.

rs_atl
  • 8,935
  • 1
  • 23
  • 28
  • 1
    Thanks a good way of distinguishing.. thanks! Part of the challenge I'm facing while selecting a NoSql product is that they all seem of offer the same thing in different ways and a black or white comparison is difficult to make.. – Kailash Jun 08 '12 at 20:19
  • Would you be able to provide an example of what you mean by "query by value"? Sorry can't find this easily – Josh Jul 12 '20 at 21:39