2 votes

Ajouter la dernière heure d'accès à un document CouchDB dans une vue

Chaque fois qu'un document est consulté, j'aimerais ajouter l'heure du dernier accès au document.

Comment mettre à jour un document dans une vue à chaque fois qu'il y a une requête GET ?

4voto

Matt Goodall Points 1282

Vous ne pouvez pas. Un GET (lorsqu'il est utilisé correctement) ne modifie pas les données ; CouchDB utilise GET correctement.

Si vous souhaitez vraiment enregistrer un temps d'accès comme celui-ci, vous devrez mettre à jour le document avec le nouvel horodatage et remettre le document dans CouchDB. Cependant, si plusieurs personnes accèdent à un document, il est fort probable qu'elles se disputent le document et que CouchDB envoie des erreurs de conflit.

Une option consiste à créer un nouveau document "document accédé" dans CouchDB à chaque accès, mais cela augmenterait rapidement la taille de la base de données. Vous auriez en fait un historique des temps d'accès, si cela peut vous être utile ?

Personnellement, j'envisagerais simplement d'enregistrer l'accès d'un document à un fichier ou à une file d'attente et de traiter le fichier ou la file d'attente en arrière-plan. Vous pourriez avoir un document "accédé" par document réel car il y a peu ou pas de risque de conflit et une mise à jour ratée n'aurait probablement pas d'importance (vous pouvez toujours réessayer de toute façon).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X