couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Cottlehuber <d...@muse.net.nz>
Subject Re: Views question? (entity relationship)
Date Sun, 03 Apr 2011 23:13:47 GMT
On 4 April 2011 10:55, Luis Miguel Silva
<luismiguelferreirasilva@gmail.com> 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

Mime
View raw message