2013-05-23 38 views
8

Tôi đã tìm thấy một số thông tin để thực hiện điều này trong mongoDB, nhưng tôi cần nó với mongoid. Vì vậy, tôi có thể làm điều gì đó như:Làm thế nào để có được các tài liệu N cuối cùng với mongoid?

User.last(7000).each do ....

Tôi đang sử dụng:

  • MongoDB phiên bản vỏ: 2.4.3

  • Mongoid 2.6.0

Cảm ơn!

+0

Cố gắng dịch giải pháp JS thành Mongoid. Tôi cá là nó sẽ hoạt động. –

Trả lời

20

Bây giờ tôi tìm thấy một giải pháp từ mongoid origin:

User.all.desc('_id').limit(7000) 

Nó sắp xếp các người dùng trong thứ tự giảm dần theo id.

+3

QUAN TRỌNG! Giả sử bạn có 9000 bản ghi nếu bạn làm u = User.all.desc ('_ id') .giới hạn (7000) và sau đó u.delete nó sẽ xóa 9000 bản ghi! Chỉ xảy ra với tôi trên một ứng dụng sản xuất. May mắn là tôi luôn luôn làm một bản sao lưu mới trước khi làm những việc như vậy. – Pod

+0

@Pod bạn nên chuyển đổi thành mảng 'to_a' sau' limit() '(trước khi hủy), đọc https://stackoverflow.com/a/20368143/1297435 này –