2017-03-11 4 views
0

Wie bekomme ich unterschiedliche Werte von einer find(). Fetch() - Funktion. Ich versuche das, aber das funktioniert nicht. Wer sieht den Fehler in meinem Code?Meteor Distinct Werte

var finales = UserSpieler.find({UserID: 1}).map(function(doc) 
    { 
     return doc.SpielerID; 
    }); 

    var distinctArray = _.uniq(finales, false, function(d) {return d.SpielerID}); 
    var disctinctValues = _.pluck(distinctArray, 'SpielerID'); 

    return disctinctValues; 

Dank

+0

Sie haben die Dokumente bereits in der Funktion 'map' zu ihrer' SpielerID' gemappt, so dass Sie dies in den anderen Funktionen nicht noch zweimal machen müssen (einfach an '_.uniq' übergeben). – MasterAM

Antwort

0

ist es zwei Probleme mit dem, was Sie tun:

1) UserSpieler.find({UserID: 1}) gibt nur Dokumente, bei denen Benutzer-ID 1. Stattdessen ist es scheint, wie Sie die Felder zu filtern versuchen.

So UserSpieler.find({},{UserID: 1}) die alle Dokumente durchsucht.

2) Sie versuchen, drei verschiedene Zeiten zu pflücken/abzubilden. Zuerst mit .map. Zweitens, mit der Mapping-Funktion in ._uniq. Drittens, wenn Sie ._pluck anrufen.

Hier ist ein Update die gleiche Sache

var finales = UserSpieler.find({},{UserID: 1}).map(function(doc) 
    { 
    return doc.SpielerID; 
    } 
); 
var distinctArray = _.uniq(finales, false); 
return distinctArray; 

Auch Kasse die Antworten here

0

Wenn Sie möchten, und wie gesagt in this Antwort zu tun, können Sie auch this-Paket, das auf verschiedene Methode fügt verwenden können Server