You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by Luis Miguel Silva <lu...@gmail.com> on 2011/04/04 18:34:48 UTC
How to query a view by key?
Dear all,
I've been reading the docs but i simply cannot understand how to query
a view by key??
For instance, let's imagine these 2 documents:
{
"_id": "esxi4-stateless",
"_rev": "2-fe0aeb05ac93d5f5a08d4befc68f10a6",
"type": "os",
"oslist": [
"SOE-RHEL-5_5-2H10_0-Statelite-pm",
"esxi4-stateless",
"rhel53-statelite-pm",
"rhel54-statelite-pm"
],
"vmoslist": [
"rhel48-stateful",
"rhel53-stateful",
"rhel53-stateful-cluster",
"rhel54-stateful",
"SOE-RHEL-5_5-2H10_0-Stateful",
"rhel54-stateful-cluster",
"rhel53-statelite-vm",
"rhel54-statelite-vm",
"SOE-RHEL-5_5-2H10_0-Statelite-vm",
"win2k3-stateful-32-std",
"win2k3-stateful-32-ent",
"win2k3-stateful-32-ent-cluster",
"win2k3-stateful-64-std",
"win2k3-stateful-64-ent",
"win2k3-stateful-64-ent-cluster",
"win2k8-stateful-64-std",
"win2k8-stateful-64-ent",
"win2k8-stateful-64-ent-cluster",
"win2k8R2-stateful-64-std",
"win2k8R2-stateful-64-ent",
"win2k8R2-stateful-64-ent-cluster",
"P2V-WIN,P2V-RHEL"
]
}
and
{
"_id": "rhel54-stateful",
"_rev": "1-170a66778927ee575ab080a33985d44e",
"type": "os",
"oslist": [
"SOE-RHEL-5_5-2H10_0-Statelite-pm",
"esxi4-stateless",
"rhel53-statelite-pm",
"rhel54-statelite-pm"
]
}
So i created this view to query them:
function(doc) {
if (doc.type == "os")
{
emit(doc._id,
{
os: doc._id,
OSLIST: doc.oslist,
VMOSLIST: doc.vmoslist,
}
);
}
}
And consuming it directly
(http://xkitten.ac:5984/momdb/_design/os/_view/getOS) produces:
{"total_rows":2,"offset":0,"rows":[
{"id":"esxi4-stateless","key":"esxi4-stateless","value":{"os":"esxi4-stateless","OSLIST":["SOE-RHEL-5_5-2H10_0-Statelite-pm","esxi4-stateless","rhel53-statelite-pm","rhel54-statelite-pm"],"VMOSLIST":["rhel48-stateful","rhel53-stateful","rhel53-stateful-cluster","rhel54-stateful","SOE-RHEL-5_5-2H10_0-Stateful","rhel54-stateful-cluster","rhel53-statelite-vm","rhel54-statelite-vm","SOE-RHEL-5_5-2H10_0-Statelite-vm","win2k3-stateful-32-std","win2k3-stateful-32-ent","win2k3-stateful-32-ent-cluster","win2k3-stateful-64-std","win2k3-stateful-64-ent","win2k3-stateful-64-ent-cluster","win2k8-stateful-64-std","win2k8-stateful-64-ent","win2k8-stateful-64-ent-cluster","win2k8R2-stateful-64-std","win2k8R2-stateful-64-ent","win2k8R2-stateful-64-ent-cluster","P2V-WIN,P2V-RHEL"]}},
{"id":"rhel54-stateful","key":"rhel54-stateful","value":{"os":"rhel54-stateful","OSLIST":["SOE-RHEL-5_5-2H10_0-Statelite-pm","esxi4-stateless","rhel53-statelite-pm","rhel54-statelite-pm"]}}
]}
But what about if i just want to get the register for _id = "esxi4-stateless" ??
I've been trying with:
http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key="esxi4-stateless"&include_docs=true
http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key=["esxi4-stateless",1,{}]&include_docs=true
and a mixture of different things but i JUST can't seem to get it?!
Could someone please explain how to correctly query the REST web
service to get what i want??
Thanks in advance,
Luis
Re: How to query a view by key?
Posted by Luis Miguel Silva <lu...@gmail.com>.
That was it! THANK YOU SO MUCH! (jeezzzz...i just couldn't get that to
work) ;o))
You're the best!
Luis
On Mon, Apr 4, 2011 at 11:55 AM, Ryan Ramage <ry...@gmail.com> wrote:
> Try to urlencode your quotes
>
> eg
>
> http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key=%22esxi4-stateless%22&include_docs=true
>
> See if that helps.
>
>
> On Mon, Apr 4, 2011 at 10:34 AM, Luis Miguel Silva
> <lu...@gmail.com> wrote:
>> Dear all,
>>
>> I've been reading the docs but i simply cannot understand how to query
>> a view by key??
>>
>> For instance, let's imagine these 2 documents:
>> {
>> "_id": "esxi4-stateless",
>> "_rev": "2-fe0aeb05ac93d5f5a08d4befc68f10a6",
>> "type": "os",
>> "oslist": [
>> "SOE-RHEL-5_5-2H10_0-Statelite-pm",
>> "esxi4-stateless",
>> "rhel53-statelite-pm",
>> "rhel54-statelite-pm"
>> ],
>> "vmoslist": [
>> "rhel48-stateful",
>> "rhel53-stateful",
>> "rhel53-stateful-cluster",
>> "rhel54-stateful",
>> "SOE-RHEL-5_5-2H10_0-Stateful",
>> "rhel54-stateful-cluster",
>> "rhel53-statelite-vm",
>> "rhel54-statelite-vm",
>> "SOE-RHEL-5_5-2H10_0-Statelite-vm",
>> "win2k3-stateful-32-std",
>> "win2k3-stateful-32-ent",
>> "win2k3-stateful-32-ent-cluster",
>> "win2k3-stateful-64-std",
>> "win2k3-stateful-64-ent",
>> "win2k3-stateful-64-ent-cluster",
>> "win2k8-stateful-64-std",
>> "win2k8-stateful-64-ent",
>> "win2k8-stateful-64-ent-cluster",
>> "win2k8R2-stateful-64-std",
>> "win2k8R2-stateful-64-ent",
>> "win2k8R2-stateful-64-ent-cluster",
>> "P2V-WIN,P2V-RHEL"
>> ]
>> }
>>
>> and
>> {
>> "_id": "rhel54-stateful",
>> "_rev": "1-170a66778927ee575ab080a33985d44e",
>> "type": "os",
>> "oslist": [
>> "SOE-RHEL-5_5-2H10_0-Statelite-pm",
>> "esxi4-stateless",
>> "rhel53-statelite-pm",
>> "rhel54-statelite-pm"
>> ]
>> }
>>
>> So i created this view to query them:
>> function(doc) {
>> if (doc.type == "os")
>> {
>> emit(doc._id,
>> {
>> os: doc._id,
>> OSLIST: doc.oslist,
>> VMOSLIST: doc.vmoslist,
>> }
>> );
>> }
>> }
>>
>> And consuming it directly
>> (http://xkitten.ac:5984/momdb/_design/os/_view/getOS) produces:
>> {"total_rows":2,"offset":0,"rows":[
>> {"id":"esxi4-stateless","key":"esxi4-stateless","value":{"os":"esxi4-stateless","OSLIST":["SOE-RHEL-5_5-2H10_0-Statelite-pm","esxi4-stateless","rhel53-statelite-pm","rhel54-statelite-pm"],"VMOSLIST":["rhel48-stateful","rhel53-stateful","rhel53-stateful-cluster","rhel54-stateful","SOE-RHEL-5_5-2H10_0-Stateful","rhel54-stateful-cluster","rhel53-statelite-vm","rhel54-statelite-vm","SOE-RHEL-5_5-2H10_0-Statelite-vm","win2k3-stateful-32-std","win2k3-stateful-32-ent","win2k3-stateful-32-ent-cluster","win2k3-stateful-64-std","win2k3-stateful-64-ent","win2k3-stateful-64-ent-cluster","win2k8-stateful-64-std","win2k8-stateful-64-ent","win2k8-stateful-64-ent-cluster","win2k8R2-stateful-64-std","win2k8R2-stateful-64-ent","win2k8R2-stateful-64-ent-cluster","P2V-WIN,P2V-RHEL"]}},
>> {"id":"rhel54-stateful","key":"rhel54-stateful","value":{"os":"rhel54-stateful","OSLIST":["SOE-RHEL-5_5-2H10_0-Statelite-pm","esxi4-stateless","rhel53-statelite-pm","rhel54-statelite-pm"]}}
>> ]}
>>
>> But what about if i just want to get the register for _id = "esxi4-stateless" ??
>>
>> I've been trying with:
>> http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key="esxi4-stateless"&include_docs=true
>> http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key=["esxi4-stateless",1,{}]&include_docs=true
>> and a mixture of different things but i JUST can't seem to get it?!
>>
>> Could someone please explain how to correctly query the REST web
>> service to get what i want??
>>
>> Thanks in advance,
>> Luis
>>
>
Re: How to query a view by key?
Posted by Ryan Ramage <ry...@gmail.com>.
Try to urlencode your quotes
eg
http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key=%22esxi4-stateless%22&include_docs=true
See if that helps.
On Mon, Apr 4, 2011 at 10:34 AM, Luis Miguel Silva
<lu...@gmail.com> wrote:
> Dear all,
>
> I've been reading the docs but i simply cannot understand how to query
> a view by key??
>
> For instance, let's imagine these 2 documents:
> {
> "_id": "esxi4-stateless",
> "_rev": "2-fe0aeb05ac93d5f5a08d4befc68f10a6",
> "type": "os",
> "oslist": [
> "SOE-RHEL-5_5-2H10_0-Statelite-pm",
> "esxi4-stateless",
> "rhel53-statelite-pm",
> "rhel54-statelite-pm"
> ],
> "vmoslist": [
> "rhel48-stateful",
> "rhel53-stateful",
> "rhel53-stateful-cluster",
> "rhel54-stateful",
> "SOE-RHEL-5_5-2H10_0-Stateful",
> "rhel54-stateful-cluster",
> "rhel53-statelite-vm",
> "rhel54-statelite-vm",
> "SOE-RHEL-5_5-2H10_0-Statelite-vm",
> "win2k3-stateful-32-std",
> "win2k3-stateful-32-ent",
> "win2k3-stateful-32-ent-cluster",
> "win2k3-stateful-64-std",
> "win2k3-stateful-64-ent",
> "win2k3-stateful-64-ent-cluster",
> "win2k8-stateful-64-std",
> "win2k8-stateful-64-ent",
> "win2k8-stateful-64-ent-cluster",
> "win2k8R2-stateful-64-std",
> "win2k8R2-stateful-64-ent",
> "win2k8R2-stateful-64-ent-cluster",
> "P2V-WIN,P2V-RHEL"
> ]
> }
>
> and
> {
> "_id": "rhel54-stateful",
> "_rev": "1-170a66778927ee575ab080a33985d44e",
> "type": "os",
> "oslist": [
> "SOE-RHEL-5_5-2H10_0-Statelite-pm",
> "esxi4-stateless",
> "rhel53-statelite-pm",
> "rhel54-statelite-pm"
> ]
> }
>
> So i created this view to query them:
> function(doc) {
> if (doc.type == "os")
> {
> emit(doc._id,
> {
> os: doc._id,
> OSLIST: doc.oslist,
> VMOSLIST: doc.vmoslist,
> }
> );
> }
> }
>
> And consuming it directly
> (http://xkitten.ac:5984/momdb/_design/os/_view/getOS) produces:
> {"total_rows":2,"offset":0,"rows":[
> {"id":"esxi4-stateless","key":"esxi4-stateless","value":{"os":"esxi4-stateless","OSLIST":["SOE-RHEL-5_5-2H10_0-Statelite-pm","esxi4-stateless","rhel53-statelite-pm","rhel54-statelite-pm"],"VMOSLIST":["rhel48-stateful","rhel53-stateful","rhel53-stateful-cluster","rhel54-stateful","SOE-RHEL-5_5-2H10_0-Stateful","rhel54-stateful-cluster","rhel53-statelite-vm","rhel54-statelite-vm","SOE-RHEL-5_5-2H10_0-Statelite-vm","win2k3-stateful-32-std","win2k3-stateful-32-ent","win2k3-stateful-32-ent-cluster","win2k3-stateful-64-std","win2k3-stateful-64-ent","win2k3-stateful-64-ent-cluster","win2k8-stateful-64-std","win2k8-stateful-64-ent","win2k8-stateful-64-ent-cluster","win2k8R2-stateful-64-std","win2k8R2-stateful-64-ent","win2k8R2-stateful-64-ent-cluster","P2V-WIN,P2V-RHEL"]}},
> {"id":"rhel54-stateful","key":"rhel54-stateful","value":{"os":"rhel54-stateful","OSLIST":["SOE-RHEL-5_5-2H10_0-Statelite-pm","esxi4-stateless","rhel53-statelite-pm","rhel54-statelite-pm"]}}
> ]}
>
> But what about if i just want to get the register for _id = "esxi4-stateless" ??
>
> I've been trying with:
> http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key="esxi4-stateless"&include_docs=true
> http://xkitten.ac:5984/momdb/_design/os/_view/getOS?key=["esxi4-stateless",1,{}]&include_docs=true
> and a mixture of different things but i JUST can't seem to get it?!
>
> Could someone please explain how to correctly query the REST web
> service to get what i want??
>
> Thanks in advance,
> Luis
>