distinct в MongoDB е команда и командите не връщат курсори. Само курсорите поддържат limit(), докато резултатите от командата не, точно както sort() не се поддържа тук и мисля, че сортирането е достатъчно важно, за да се изпълни първо, в противен случай никога не знаете кои „първите два“ отделни елемента получавате
Има начин да се заобиколи това, но с помощта на рамката за агрегиране. В обикновен език на MongoDB заявка (както използвате в обвивката на MongoDB), бихте използвали:
db.places.aggregate( [
{ $match: { 'tags' : { $in: [ 'food' ] } } },
{ $group: { '_id': '$name' } },
{ $sort: { 'name': 1 } },
{ $limit: 2 },
] );
Подозирам, че в Mongoid можете да промените първия ред на:
Place.collection.aggregate( [