couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chirayu shah <chill....@gmail.com>
Subject Re: CouchDB _changes API query
Date Thu, 21 Oct 2010 09:11:47 GMT
Hi Simon,

Thanks for the quick reply.
This might serve my use case. I'll try this out and post back if required.

Thanks,
Chirayu.

On Wed, Oct 20, 2010 at 6:28 PM, Simon Metson <simonmetson@googlemail.com>wrote:

> 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