2013-01-25 12 views

Odpowiedz

9
Collection.find({}).distinct('myField', true); 

Aby go wykorzystać, umieścić następujące w [projekt] /client/lib/a.js:

LocalCollection.Cursor.prototype.distinct = function (key,random) { 
    var self = this; 

    if (self.db_objects === null) 
    self.db_objects = self._getRawObjects(true); 
    if (random) 
    self.db_objects = _.shuffle(self.db_objects); 
    if (self.reactive) 
    self._markAsReactive({ordered: true, 
          added: true, 
          removed: true, 
          changed: true, 
          moved: true}); 
    var res = {}; 
    _.each(self.db_objects,function(value){ 

    if(!res[value[key]]){ 
     res[value[key]] = value; 
    } 
    }); 
    return _.values(res); 
}; 
+0

Dzięki! Spróbuję tego. – TimDog

+0

używając tego, czy mogę wykonać niestandardowe 'find()', aby niektóre operacje były tylko reaktywne? Czy więc jest to jedyna reakcja na dodanie i usunięcie? – Akshat

+0

tak. w self._markAsReactive() set false: uporządkowany, zmieniony, przeniesiony. – ram1