couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Metson <simonmet...@googlemail.com>
Subject Re: CouchDB _changes API query
Date Wed, 20 Oct 2010 12:58:33 GMT
Hi,
	http://guide.couchdb.org/draft/notifications.html#filters

I think you'd want to query _changes with a filter to check that the  
doc.name is the same as that from the query string, slightly modifying  
the example from the book:

function(doc, req)
{
   if(doc.id == req.query.id && doc.name != req.query.name) {
     return true;
   }

   return false;
}

You'd then query http://localhost:5984/helloworld/_changes with  
something like _changes?filter=myapp/myfilter&id=app1&name=Hello which  
would return all changes for documents with id=app1 where the name  
differs from what you set.

I don't think you can filter what the change is reliably, though. For  
instance the filter above would miss someone changing the name back to  
"Hello" unless you change the query string, which means your  
application will need to hold that piece of state information. You can  
easily see all changes for a given document, and then further filter  
later on, though, maybe that's sufficient?
Cheers
Simon

On 20 Oct 2010, at 13:31, chirayu shah wrote:

> Hi,
>
> The output that we get with the _changes database API tells us which
> document was changed and its revision information.
> Is there a way to get the notification when a particular key of a  
> document
> is changed?
>
> Basically is there a way to listen to a specific key of a document  
> of a
> database?
>
> For eg: Suppose I have a database as "helloworld", which has 2  
> documents
> "app1" and "app2" whose contents are as follows:
>
> app1 :
>
> {
>   "_id": "app1",
>   "_rev": "2-c1765690ce0ba5c4d51bd6e06f6d63e1",
>   "name": "Hello",
>   "title": "World"
> }
>
>
> app2:
>
> {
>   "_id": "1",
>   "_rev": "2-95ca949e944d55bdb0dc79b8d8223f05",
>   "a": 2,
>   "b": 4
> }
>
>
> Now I want to listen to the key "name" of the document "app1" for  
> changes.
> So I should receive the notification when the value of "name"  
> changes and
> not if the value of "title" changes.
>
> Is there a way to do this in CouchDB? If yes, then how?
> Any help would be much appreciated.
>
> Thanks,
> Chirayu.


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message