2009-07-02 23 views
0

J'ai un document utilisateur qui a un champ de groupe. Ce champ est un tableau d'identifiants de groupe. Je voudrais écrire une vue qui renvoie (groupid comme clé) -> (tableau de documents utilisateur comme val). Cette opération de cartographie semble être un bon début.CouchDB- question de groupe de base

function(doc) 
{ 
    var type = doc.type; 
    var groups = doc.groups; 
    if(type == "user" && groups.length > 0) 
    { 
    for(var i = 0; i < groups.length; i++) 
    { 
     emit(groups[i], doc); 
    } 
    } 
} 

Mais il y a évidemment quelque chose de très mal avec ma tentative de réduire:

function(key, values, rereduce) 
{ 
    var set = []; 
    var seen = []; 
    for(var i = 0; i < values.length; i++) 
    { 
    var _id = values[i]._id; 
    if(seen.indexOf(_id) == -1) 
    { 
     seen.push(_id); 
     set.push(values[i]); 
    } 
    } 
    return set; 
} 

Je suis en cours d'exécution CouchDB 0.10dev. Toute aide appréciée.

Répondre