You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by sebastien pastor <se...@gmx.com> on 2011/01/26 11:11:19 UTC

related documents filtering on several key values

Hi guys, 

 I am trying to solve what i guess is a trivial problem, i came up with a view that seems to fulfill 
 my needs but, still... not being an view expert, i wouldn t mind hearing from your advices 
 here it goes : i have 2 types of documents :
 {
 "type":"user"
 "_id":"AAAA"
 "speciality":"13245"
 }
 {
 "type":"object"
 "user_id":"AAAA"
 "status":"  NEW" 

 ...
 }

 what i try to do is get the list of all documents of type "object" with a specific status for a specific user AND a specific speciality .
 I came up with this view : 

 def getTripsByMeID_and_Status(doc):
 if doc["type"]=="user":
 yield [doc['_id'],0,doc['
speciality']], doc
 if doc["type"]=="object" :
 yield [doc['user_id'],1,doc['status']], doc To retrieve all objects owned by user  AAAA with a status "NEW" and speciality set to "12345" I would then use something like this: 
view/myView?startkey=["AAAA http://localhost:59840/metickets/_design/trips/_view/getTripsByMeID_and_Status?startkey=[%22aaaaa%22,0,%229090-9403249032-49320-4930-9240294032%22]&endkey=[%22aaaaa%22,1,%22NEW%22] ",0,"12345"]&endkey=["AAAA http://localhost:59840/metickets/_design/trips/_view/getTripsByMeID_and_Status?startkey=[%22aaaaa%22,0,%229090-9403249032-49320-4930-9240294032%22]&endkey=[%22aaaaa%22,1,%22NEW%22] ",1,"NEW"] http://localhost:59840/metickets/_design/trips/_view/getTripsByMeID_and_Status?startkey=[%22aaaaa%22,0,%229090-9403249032-49320-4930-9240294032%22]&endkey=[%22aaaaa%22,1,%22NEW%22]  The only problem i can see with this, is, if objects for user AAAA are all with a status="old" for instance, i will still get at least one line which will be the line refering to the doc type "user"... Do you see a better way of doing this ? Thanks in advance (and thanks for reading a rather long email :) ) Seb