L'une des choses perdues lors du passage à CouchDB est la possibilité d'avoir des valeurs par défaut pour un champ. Par exemple, dans une base de données SQL, vous pouvez avoir un champ appelé date
par défaut now()
. Est-il possible de faire quelque chose de similaire dans CouchDB? De ce que je peux dire, le seul morceau de code qui s'exécute à chaque création et mise à jour est la méthode validate_doc_update
d'un document de conception. Cependant, lorsque nous l'avons testé en créant une validation fictive, nous ne pouvons pas le faire fonctionner. Voici une simple fonction de validation qui tente de définir le champ newDoc.foo
, mais elle n'est jamais enregistrée.Est-il possible d'ajouter des champs à un document dans une fonction de validation CouchDB?
function(newDoc, oldDoc, userCtr) {
newDoc.foo = "bar!";
}
Nous avons vérifié et vérifié que la méthode est validate_doc_update
obtenir appelé, il semble donc que s'il y a un moyen d'ajouter automatiquement les champs à un document CouchDB, en utilisant la fonction de validation ne sont pas la voie à suivre. D'autres suggestions?
Dans les versions récentes de CouchDB [il n'est pas permis de modifier le document dans la vue] (http://web.archiveorange.com/archive/v/oW6DzLPEoEfysNJMyaLk). –
Merci pour l'indice sur les gestionnaires de mise à jour. Un gestionnaire de mise à jour bien conçu peut ressembler et se sentir exactement comme le mécanisme normal de création et de mise à jour de documents tout en ajoutant des champs supplémentaires, comme une date de création. De plus, en les mettant dans les fonctions de mise à jour, ils ne sont pas réexécutés après la réplication. – Pridkett