distinct i MongoDB är ett kommando och kommandon returnerar inte markörer. Endast markörer stöder limit() medan kommandoresultat inte gör det, precis som sort() stöds inte här, och jag tror att sortering är tillräckligt viktigt för att köras först, annars vet du aldrig vilka "första två" distinkta objekt du får
Det finns en väg runt detta, men genom att använda aggregeringsramverket. I vanlig MongoDB-frågaspeak (som du använder på MongoDB-skalet), skulle du använda:
db.places.aggregate( [
{ $match: { 'tags' : { $in: [ 'food' ] } } },
{ $group: { '_id': '$name' } },
{ $sort: { 'name': 1 } },
{ $limit: 2 },
] );
I Mongoid misstänker jag att du kan ändra den första raden till:
Place.collection.aggregate( [