Formas de implementar versiones de datos en MongoDB

¿Puede compartir sus pensamientos sobre cómo implementaría el control de versiones de datos en MongoDB? (He preguntadopregunta similar con respecto a Cassandra. Si tiene alguna idea de qué base de datos es mejor para eso, por favor comparta)

Suponga que necesito versionar registros en una libreta de direcciones simple. (Los registros de la libreta de direcciones se almacenan como objetos json planos). Espero que la historia:

se usará con poca frecuenciase utilizará de una vez para presentarlo en forma de "máquina del tiempo"no habrá más versiones que unos pocos cientos para un solo registro. La historia no caducará.

Estoy considerando los siguientes enfoques:

Cree una nueva colección de objetos para almacenar el historial de registros o cambios en los registros. Almacenaría un objeto por versión con una referencia a la entrada de la libreta de direcciones. Dichos registros se verían de la siguiente manera:

{
 '_id': 'new id',
 'user': user_id,
 'timestamp': timestamp,
 'address_book_id': 'id of the address book record' 
 'old_record': {'first_name': 'Jon', 'last_name':'Doe' ...}
}

Este enfoque se puede modificar para almacenar una variedad de versiones por documento. Pero este parece ser un enfoque más lento sin ninguna ventaja.

Almacene versiones como objetos serializados (JSON) adjuntos a las entradas de la libreta de direcciones. No estoy seguro de cómo adjuntar dichos objetos a los documentos de MongoDB. Quizás como un conjunto de cuerdas. (Modelado a partir de versiones de documentos simples con CouchDB)

Respuestas a la pregunta(8)

Su respuesta a la pregunta