在我開始之前,請不要告訴我使用SQL。這是一個更大範圍內的小問題,我不能也不想在這裏使用關係數據庫。我知道這個問題在SQL中很容易解決。CouchDB MapReduce查詢關係數據
有三種類型的文件:
- 玩家
- 隊
- 贊助商
隊屬於一個贊助商,但有很多玩家。一名球員可以有多支球隊,而一名贊助者可以有多支球隊。
玩家1 ---ň隊ñ--- 1個贊助
我把玩家文檔ID到小組文件中的數組:
players: ["payer1","player2",...]
現在我想所有(不同,只命名一次)贊助商爲特定球員:
PLAYER1:Sponsor1,Sponsor2,Sponsor3,...
它在CouchDB Wiki有點像NN的例子,但小號因爲隊員中有多個鍵,這不起作用。
我創建了一個gist with example data.。
任何想法如何編寫MapReduce函數來獲得此結果?
我得到的最接近,但節目贊助商多次,組級1:
function(doc) {
if(doc.type == "team")
emit(doc.players,doc.sponsor);
}
function(keys, values) {
return (values);
}
可能是有用的? http://stackoverflow.com/questions/5511810/couchdb-view-equivalent-of-sum-group-by – ajreal