? Estoy tratando de comprender cómo CouchDB calcula la id de revisión para un documento. Me he dado cuenta de la fuente que se calcula según la siguiente trozo de código aquí:¿Cómo calcula CouchDB el número de revisión
couch_util:md5(term_to_binary([Deleted, OldStart, OldRev, Body, Atts2]))
Y sé que si puedo crear un nuevo documento vacío sin los accesorios, CouchDB siempre le da una revisión de 1-967a00dff5e02add41819138abb3284d que, a su el decimal es < < 150,122,0,223,245,224,42,221,65,129,145,56,171,179,40,77 >>.
Sin embargo, si escribo lo siguiente en el símbolo del Erlang (falso para eliminar, 0 para OldStart, 0 para OLDREV, un cuerpo vacío y sin archivos adjuntos):
erlang:md5(term_to_binary([false, 0, 0, [], []])).
Siempre me
<<26,196,244,40,211,149,193,185,214,6,230,61,54,138,62,132>>
atrás.
Entonces, ¿qué estoy haciendo mal aquí? ¿Cómo puedo calcular la revisión real que genera el sofá?
¿Por qué es necesario determinar de manera preventiva el número _rev? Obtiene el número generado en la respuesta del servidor después de escribir. –
Es porque estoy interesado en realizar una sincronización de almacén de datos diferente con couchdb, y para una sincronización adecuada, ambas partes deben calcular la id de revisión de la misma manera. – kybernetikos