2013-01-25 42 views

回答

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

要使用,放在[項目] /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

謝謝!我會試試這個。 – TimDog

+0

使用這個我能夠做一個自定義的'find()'使某些操作僅被動?所以它唯一的反應是添加和刪除? – Akshat

+0

是的。在self._markAsReactive()中設置false:排序,更改,移動。 – ram1