CouchDB に保存したいグループとユーザーのドキュメントがあり、ユーザーは複数のグループに参加できます。1 つのグループに数千のユーザーを含めることができます。ここに私が思いついたドキュメントがあります:
Group: { "_id":"group1", "name":"abc", "type":"group" }
Group: { "_id":"group2", "name":"abc", "type":"group" }
User: { "_id":"user1", "login":"whatever", "groupIds": ["group1" , "group2"], "type":"user" }
User: { "_id":"user2", "login":"whatever", "groupIds": ["group2"], "type":"user" }
ユーザー ID でグループを取得したい。私ができる最善のことは、このビューを定義することです。
function(doc) {
if (doc.type == "user")
{
emit(doc._id, doc.groupIds);
}
}
ただし、この場合、1 つのリクエストでグループ ID を取得してから、別のリクエストで各グループを取得する必要があります。groups by user id
CouchDB への 1 回のリクエストですべてのグループが返されるようにビューを作成する方法はありますか?