2013-05-23 13 views
8

Znalazłem kilka informacji, aby osiągnąć to w mongoDB, ale potrzebuję tego z mongoidem. Mogę zrobić coś takiego:Jak zdobyć ostatnie N dokumentów z mongoidem?

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

Używam:

  • MongoDB wersję powłoki: 2.4.3

  • Mongoid 2.6.0

Dzięki!

+0

Spróbuj przetłumaczyć rozwiązanie JS na Mongoid. Założę się, że to zadziała. –

Odpowiedz

20

Teraz znalazłem rozwiązanie z mongoid origin:

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

sortuje on użytkownikom w porządku malejącym według id.

+3

WAŻNE! Zakładając, że masz 9000 rekordów, jeśli zrobisz u = User.all.desc ('_ id'). Limit (7000), a następnie u.delete to usunie 9000 rekordów! Po prostu przydarzyło mi się to w aplikacji produkcyjnej. Na szczęście zawsze robię świeżą kopię zapasową przed zrobieniem takich rzeczy. – Pod

+0

@Pod powinieneś przekonwertować tablicę 'to_a' po' limit() '(przed zniszczeniem), przeczytaj ten https://stackoverflow.com/a/20368143/1297435 –

Powiązane problemy