Maneiras de implementar a versão de dados no MongoDB

Você pode compartilhar seus pensamentos como implementaria a versão de dados no MongoDB. (Eu pergunteipergunta semelhante sobre Cassandra. Se você tem algum pensamento de que db é melhor para isso, compartilhe)

Suponha que eu precise atualizar os registros em um catálogo de endereços simples. (Os registros do catálogo de endereços são armazenados como objetos json simples). Espero que a história:

será usado com pouca frequênciaserá usado de uma só vez para apresentá-lo de forma "máquina do tempo"não haverá mais versões do que algumas centenas para um único registro. a história não vai expirar.

Estou considerando as seguintes abordagens:

Crie uma nova coleção de objetos para armazenar o histórico de registros ou alterações nos registros. Ele armazenaria um objeto por versão com uma referência à entrada do catálogo de endereços. Esses registros teriam a seguinte aparência:

{
 '_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' ...}
}

Essa abordagem pode ser modificada para armazenar uma matriz de versões por documento. Mas essa parece ser uma abordagem mais lenta, sem vantagens.

Armazene versões como objeto serializado (JSON) anexado às entradas do catálogo de endereços. Não sei como anexar esses objetos aos documentos do MongoDB. Talvez como uma série de strings. (Modelado após o versionamento de documento simples com o CouchDB)

questionAnswers(8)

yourAnswerToTheQuestion