Chaque fois qu'un document est accédé, je voudrais ajouter la dernière heure d'accès dans le document. Comment mettre à jour un document dans une vue à chaque fois qu'il y a une requête GET?Ajout de la dernière heure d'accès au document CouchDB dans une vue
Répondre
Vous ne pouvez pas. Un GET (lorsqu'il est utilisé correctement) ne modifie pas les données; CouchDB utilise GET correctement.
Si vous voulez vraiment enregistrer un temps d'accès comme cela, vous aurez besoin de mettre à jour le document avec la nouvelle horodatage et mettre le document à CouchDB. Cependant, si plus de quelques personnes accèdent à un document, vous risquez fort d'avoir des conflits et d'obtenir des erreurs de conflit de la part de CouchDB.
Une option est de créer un nouveau document « document accessible » dans CouchDB à chaque accès, mais qui augmenterait rapidement la taille de la base de données. Vous auriez en fait un historique des temps d'accès si c'est utile? Personnellement, je regarderais simplement l'enregistrement de l'accès aux documents dans un fichier ou une file d'attente et traiterais le fichier/file d'attente en arrière-plan. Vous pouvez avoir un document "document accédé" par document réel car il y a peu ou pas de chance de conflit et une mise à jour échouée n'aurait probablement pas vraiment d'importance (vous pouvez toujours essayer à nouveau).
Vous pouvez également utiliser une fonction de mise à jour pour mettre à jour un champ ou des champs sans avoir au préalable tout le document. http://wiki.apache.org/couchdb/Document_Update_Handlers –