odrębne w MongoDB to polecenie, a polecenia nie zwracają kursorów. Tylko kursory obsługują limit(), podczas gdy wyniki poleceń nie, podobnie jak sort() nie jest tutaj obsługiwane, i myślę, że sortowanie jest wystarczająco ważne, aby uruchomić je jako pierwsze, w przeciwnym razie nigdy nie wiadomo, które "pierwsze dwa" odrębne elementy otrzymasz
Istnieje sposób na obejście tego, ale za pomocą struktury agregacji. W zwykłym mowie zapytania MongoDB (tak jak używasz w powłoce MongoDB), użyjesz:
db.places.aggregate( [
{ $match: { 'tags' : { $in: [ 'food' ] } } },
{ $group: { '_id': '$name' } },
{ $sort: { 'name': 1 } },
{ $limit: 2 },
] );
Podejrzewam, że w Mongoid możesz zmienić pierwszą linię na:
Place.collection.aggregate( [