Puoi condividere i tuoi pensieri su come implementeresti il versioning dei dati in MongoDB. (Ho fatto una domanda simile riguardo a Cassandra . Se hai qualche idea su quale db è meglio per favore, condividi)
Supponiamo che io abbia bisogno dei record di versione in una semplice rubrica. (I record della rubrica sono memorizzati come oggetti json piatti). Mi aspetto che la storia:
- sarà usato raramente
- sarà usato tutto in una volta per presentarlo in modo "macchina del tempo"
- non ci saranno più versioni di poche centinaia in un singolo record. la storia non scadrà.
Sto considerando i seguenti approcci:
Creare una nuova raccolta di oggetti per archiviare la cronologia dei record o le modifiche ai record. Memorizzerebbe un oggetto per versione con un riferimento alla voce della rubrica. Tali registrazioni sarebbero le seguenti:
{ "_id": "nuovo ID", 'user': user_id, "timestamp": timestamp, 'address_book_id': 'id del record della rubrica' 'old_record': {'first_name': 'Jon', 'last_name': 'Doe' ...} }
Questo approccio può essere modificato per memorizzare una matrice di versioni per documento. Ma questo sembra essere un approccio più lento senza alcun vantaggio.
Memorizzare le versioni come oggetto serializzato (JSON) associato alle voci della rubrica. Non sono sicuro di come allegare tali oggetti ai documenti MongoDB. Forse come una serie di stringhe. ( Modellato sulla versione semplice del documento con CouchDB )