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