khác biệt trong MongoDB là một lệnh và các lệnh không trả về con trỏ. Chỉ có con trỏ mới hỗ trợ giới hạn () trong khi kết quả lệnh thì không, giống như sort () không được hỗ trợ ở đây và tôi nghĩ rằng sắp xếp là đủ quan trọng để chạy trước tiên, nếu không bạn sẽ không bao giờ biết bạn nhận được mục riêng biệt nào
Có một cách để giải quyết vấn đề này, nhưng sử dụng khung tổng hợp. Trong truy vấn MongoDB đơn giản nói (khi bạn sử dụng trên MongoDB shell), bạn sẽ sử dụng:
db.places.aggregate( [
{ $match: { 'tags' : { $in: [ 'food' ] } } },
{ $group: { '_id': '$name' } },
{ $sort: { 'name': 1 } },
{ $limit: 2 },
] );
Trong Mongoid, tôi nghi ngờ bạn có thể thay đổi dòng đầu tiên thành:
Place.collection.aggregate( [