2013-05-23 21 views
8

Ho trovato alcune informazioni per farlo in mongoDB, ma ne ho bisogno con mongoid. Quindi posso fare qualcosa del tipo:Come ottenere gli ultimi N documenti con mongoid?

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

sto usando:

  • MongoDB versione della shell: 2.4.3

  • Mongoid 2.6.0

Grazie!

+0

Provare a tradurre la soluzione JS in Mongoid. Scommetto che funzionerà. –

risposta

20

Ora ho trovato una soluzione da mongoid origin:

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

Si ordina gli utenti in ordine decrescente in base al id.

+3

IMPORTANTE! Supponendo di avere 9000 record se si utilizza u = User.all.desc ('_ id'). Limit (7000) e poi u.delete eliminerebbe i 9000 record! Mi è appena successo su un'app di produzione. Fortunatamente faccio sempre un nuovo backup prima di fare queste cose. – Pod

+0

@Pod dovresti convertire in array 'to_a' dopo' limit() '(prima di distruggere), leggi questo https://stackoverflow.com/a/20368143/1297435 –

Problemi correlati