I'm currently associating user documents with group documents like this:
{
"_id": "544f4718732b51506d9de60a4e000505",
"_rev": "137-f99f9a4aa5e3a4d48b76d98200b1f4fa",
"username": "spencer",
"firstName": "Spencer",
"lastName": "jones",
"emailAddress": "[email protected]",
"roles": [
"user"
],
"type": "user",
"disabled": false,
"empId": "10"
},
{
"_id": "3979684300c58a4c90c7c6e0d6035260",
"_rev": "58-0df6c24716cd1768f668399a96059692",
"type": "group",
"name": "marina",
"description": "",
"users": [
"544f4718732b51506d9de60a4e000505",
"63de6351a30879ee091b248c930a9254",
"8f87c698f119044890c5e788cd000c18",
"4b95a2e0ec42cb6d49efac7f52000e2c",
"8f87c698f119044890c5e788cd0019d7"
]
}
When I want to edit a user my app fetches the user document and a list of all
the groups in the system. It then loops through the groups and pulls out the
ones the user is associated with by looping through the users array looking for
the users _id number. That's a lot of looping…8-) I have to have a list of
groups anyway so the user can select from them, but I'm wondering if I can use
view collation to fetch the user and their associated groups in one request to
increase efficiency? I've looked at some examples on view collation, but the
ones I've seen show a one to one relationship between documents. Not sure if I
can use it with my data structured this way. I've considered a joining document
like a joining table from sql, but thought I'd see if there was a way to make
this work as is.
Thanks,
Troy