2012-11-20 4 views
1

Simple question: Je voudrais réagir à certains changements dans une base de données, mais seulement à ces changements qui causent des modifications dans un certain view1. C'est-à-dire, je ne suis pas intéressé par tous les changements dans la base de données, seulement les changements qui affectent view1. Je ne parle pas de filtre ici, juste à propos de la vue + les changements. Quelque chose comme ça (bien que ce soit probablement pas correct):CouchDB _changes, voir connexe

http://localhost:5984/db/_design/doc1/_view/view1/_changes 

Est-ce du tout pris en charge par CouchDB? Est-ce que cela a du sens?

Répondre

2

C'est possible, mais d'une autre manière. Depuis la version 1.1.0, CouchDB est capable de use map function as filters pour les changements de flux. Cela fonctionne comme des filtres réguliers: si une paire clé-valeur a été émise au moins une fois pour le document modifié, cela signifie qu'il passe le filtre et _changes donne l'enregistrement à son sujet. Si vous n'avez besoin que de nouvelles mises à jour pour une vue spécifique, vous devez spécifier since numéro séquentiel - il peut être facilement récupéré à partir de la ressource _design/ddoc-name/_info du champ view_index/update_seq. Depuis la version 1.3, vous pouvez également spécifier since=now pour écouter les mises à jour à partir du moment actuel. Notez que cette vue filtre n'utilise pas l'index de vue et ne le met pas à jour lorsque de nouveaux changements se produisent. En outre, il y a set of patches qui améliore les filtres de vue de la manière que vous pourriez également être intéressé.