incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Boris Schmidt" <>
Subject Finding pairs of documents
Date Thu, 28 May 2009 19:26:49 GMT

I'm quite new to CouchDB and map/reduce and played a little around with it. Currently, I am
trying to find pairs of two documents which fulfill a special condition. E.g., consider the
following documents in the store (_id and _rev are left out): [{price: 1},{price: 5},{price:
9},{price: 1000}]

Now I would like to find all pair of documents, where (doc1.price + 4 == doc2.price). How
can I express this in couchdb? I expect the following result: [[{price: 1},{price: 5}], [{price:

My first try was:
map: function(doc){
  emit(null, doc);
reduce: function(key, values){
  for(var i in values){
    for(var j in values){
      if(values[i].price + 4 == values[j]) return [values[i], values[j]];

But then I recognized the rereduce property in CouchDB and that the values of the reduce funtion
can be only intermediate results. So how can I express what I want to do in map reduce?

Nur bis 31.05.: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate und
Telefonanschluss nur 17,95 Euro/mtl.!*

View raw message