On 4 April 2011 10:55, Luis Miguel Silva <[email protected]> wrote: > Dear all, > > I'm having some trouble defining a view with entity relationships. > > Here is an example on what i need to do: > { > "_id": "node01", > "_rev": "2-eec9e84f8146d05f8116a5e064cf87e9", > "type": "node", > "amemory": 14543, > "cmemory": 49118, > "cproc": 16, > "cpuload": 2.379, > "netaddress": "10.40.130.146", > "power": "on", > "primary_state": "UP", > "secondary_state": "Unknown:sshd", > "os": "esxi4-stateless", > "alias": "node01", > "vlans": "[vlan611]", > "variables": [ > { > "provision_status": 2 > }, > { > "another_variable": "something" > } > ], > "aproc": 16, > "vmcount": 6, > "cpupercent": 14.8677794448612, > "acores": 8, > "ccores": 8, > "threads": 16, > "cpuclock": 2666, > "numvms": 13, > "hvtype": "esx", > "htenabled": true > } > > And then... > { > "_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 my view looks like: > function(doc) { > if (doc.type == "node") > { > emit(doc._id, > { > node: doc._id, > STATE: doc.secondary_state, > OS: doc.oslist, > ALIAS: doc.alias, > FEATURE: doc.vlans, > "GMETRIC[numvms]": doc.numvms, > NETADDR: doc.netaddress, > VARATTR: { "HVTYPE":doc.hvtype}, > VARIABLE: doc.variables, > } > ); > } > } > > So my question is, how do i get the oslist and vmoslist from the > document whose _id = my register's doc.os key ? > > I basically need to understand how i can query the entire database, > getting all the nodes and, while i'm querying all the nodes, get the > appropriate oslist and vmoslist (so i do not have to store these > fields more than once since they only vary based on "os" key). > > I've been reading the EntityRelationship wiki page > (http://wiki.apache.org/couchdb/EntityRelationship) but i really do > not understand how can i map without specifying a key. > In the "phone directory example", i would have to specify the > individual key i want to get in order to map relations between > documents and that's not what i want to do. > > Any thoughts? > > Thank you, > Luis >
Hi Luis, Jan's post should sort you out here http://blog.couchbase.com/whats-new-in-apache-couchdb-0-11-part-two-views A+ Dave
