berbeda di MongoDB adalah perintah dan perintah tidak mengembalikan kursor. Hanya kursor yang mendukung limit() sedangkan hasil perintah tidak, seperti sort() tidak didukung di sini, dan menurut saya sort cukup penting untuk dijalankan terlebih dahulu, jika tidak, Anda tidak akan pernah tahu item berbeda "dua pertama" mana yang Anda dapatkan
Ada cara untuk mengatasi ini, tetapi menggunakan kerangka kerja agregasi. Dalam percakapan kueri MongoDB biasa (seperti yang Anda gunakan pada shell MongoDB), Anda akan menggunakan:
db.places.aggregate( [
{ $match: { 'tags' : { $in: [ 'food' ] } } },
{ $group: { '_id': '$name' } },
{ $sort: { 'name': 1 } },
{ $limit: 2 },
] );
Di Mongoid saya curiga Anda dapat mengubah baris pertama menjadi:
Place.collection.aggregate( [