¿Cómo elimino un par clave-valor usando Cradle en CouchDB / Node.js?

He estado trabajando mucho con Cradle, el cliente couchDB. Sin embargo, tengo un documento lleno de pares clave-valor, y estoy tratando de eliminar una fila específica allí.

En la documentación, no puedo encontrar una forma de eliminación que no incluya la eliminación de todo el documento o su actualización con un valor nulo. ¿Alguien puede señalarme en la dirección correcta? Creo que este es un problema muy simple que muchas personas se encuentran.

En CouchDB, no hay soporte para actualizaciones parciales de documentos (el soporte para esto se discute de vez en cuando, pero como no existe una forma aceptada de parchear JSON, nunca llega muy lejos), por lo que debe actualizar todo el documento con una copia donde se elimina el par clave / valor no deseado.

De acuerdo, encontré una solución que es una solución a esto.

En lugar de hacer un documento que tiene una lista de pares clave-valor, en lugar de eso, simplemente haga un documento con un campo y para su valor inserte el JSON de los pares clave de valor. De esa manera, puede extraer el valor, eliminar un campo y volver a guardarlo en el valor original, sin necesidad de volver a crear todo el documento.

Aquí hay un ejemplo usando Cradle:

db.get('document', function (err, doc) { var inside_key_values = doc.key_value_pair; delete inside_key_values[key_to_delete]; db.merge("document", { key_value_pair: inside_key_values }, function (err, res) { console.log('New key value pairs saved') }); }); 

Esta es una gran respuesta de @djc basada en la falta de soporte en el extremo couchDB. Esperemos que alguien más encuentre esta solución valiosa.