distinct i MongoDB er en kommando og kommandoer returnerer ikke markører. Kun markører understøtter limit(), hvorimod kommandoresultater ikke understøttes, ligesom sort() ikke understøttes her, og jeg synes, sortering er vigtig nok til at køre først, ellers ved du aldrig, hvilke "første to" forskellige elementer du får
Der er en vej uden om dette, men ved at bruge aggregeringsrammen. I almindelig MongoDB-forespørgselstale (som du bruger på MongoDB-skallen), ville du bruge:
db.places.aggregate( [
{ $match: { 'tags' : { $in: [ 'food' ] } } },
{ $group: { '_id': '$name' } },
{ $sort: { 'name': 1 } },
{ $limit: 2 },
] );
I Mongoid formoder jeg, at du kan ændre den første linje til:
Place.collection.aggregate( [