Print

Print


Yeah, I may have gotten it completely wrong.

Okay, help this grasshopper (possibly by pointing me to relevant 
documentation), what's the difference between "document-based" and 
"key-value store"?  When I've looked at CouchDB before, despite it 
describing itself as "document based", I haven't been able to tell what 
the difference is between it and a "key value store".  It seemed to 
support storing a "document" by key, and retrieving it by key.  It 
didn't seem to _do_ anything special with the document other than 
storing it there (maybe it DOES, but I missed it?).  So you can call it 
a "document" instead of a "value", but I couldn't figure out how that 
differed from a key-value store.

I guess it's that CouchDB _does_ let you build indexes on values other 
than the key?  Wacky, wonder how I missed that when I reviewed it last.

Jonathan

Ross Singer wrote:
> On Mon, Apr 12, 2010 at 12:22 PM, Jonathan Rochkind <[log in to unmask]> wrote:
>   
>> The thing is, the NoSQL stuff is pretty much just a key-value store.
>>  There's generally no way to "query" the store, instead you can simply look
>> up a document by ID.
>>     
>
> Actually, this depends largely on the NoSQL DBMS in question.  Some
> are key value stores (Redis, Tokyo Cabinet, Cassandra), some are
> document-based (CouchDB, MongoDB), some are graph-based (Neo4J), so I
> think blanket statements like this are somewhat misleading.
>
> CouchDB and MongoDB (for example) have the capacity to index the
> values within the document - you don't just have to look up things by
> document ID.
>
> -Ross.
>
>