Ho letto un po 'di CouchDB e sono davvero incuriosito dal fatto che sia "solo append". I può essere equivoco che, ma se ho capito bene, funziona un po 'come questo:I vecchi dati sono accessibili in CouchDB?
dati vengono aggiunti al momento t0 al DB dicendo che un utente con il nome ID 1 è "Cedrik Martin"
una domanda che chiede "qual è il nome dell'utente con ID 1?" restituisce "Cedrik Martin"
al momento t1 un aggiornamento è fatto per il racconto DB: "User con il nome ID 1 di è Cedric Martin" (cambiando la 'k' a una 'c').
una query chiede ancora una volta "qual è il nome dell'utente con ID 1" ora restituisce "Cedric Martin"
E 'un esempio stupido, ma è perché mi piacerebbe capire qualcosa di fondamentale su CouchDB.
Visto che l'aggiornamento è stato effettuato utilizzando un'app alla fine del DB, è possibile interrogare il DB "come era al tempo t0", senza fare nulla di speciale?
Posso chiedere a CouchDB "Qual era il nome dell'utente con ID 1 al tempo t0?"?
EDIT la prima risposta è molto interessante e quindi ho una domanda più precisa: finché non sto "compattazione" un CouchDB, posso scrivere query che sono in qualche modo "referenzialmente trasparente" (cioè saranno sempre produrre lo stesso risultato)? Ad esempio, se interrogazione per "documento d alla revisione r", sono sicuro di ottenere sempre la stessa risposta finché non compro il DB?
Forse questo collegamento è utile per te. http://wiki.apache.org/couchdb/HTTP_Document_API#Accessing_Previous_Revisions –