This video distinguishes between three (main) types of NoSQL databases:

  1. Key/Value store
  2. Tabular
  3. Document oriented

Do these types differ in how they technically store their data or can they be considered all to be key/value stores since even the tabular ones (like Cassandra) may have variable column count and most likely serialize the column values to a string? And the documents (MongoDB) are also only strings in the end... I suppose all types generate an unique id for their "values/data". So are all the 3 types key/value on low level?


MongoDB is not a key-value store; its documents are not just strings in the end. MongoDB stores its data in a format called BSON (Binary JSON), which allows for complex structures including various data types, strings being just one of them. See the BSON Spec for more details, for example:

The following are some example documents (in JavaScript / Python style syntax) and their corresponding BSON representations.

Example 1: {"hello": "world"}

\x16\x00\x00\x00                   // total document size  
\x02                               // 0x02 = type String  
hello\x00                          // field name  
\x06\x00\x00\x00world\x00          // field value  
\x00                               // 0x00 = type EOO ('end of object')  

Example 1: {"BSON": ["awesome", 5.05, 1986]}

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.