MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Impaginazione con MongoDB

L'impaginazione in MongoDB può essere eseguita utilizzando una combinazione di limit() e skip() .

Ad esempio, supponiamo di avere una raccolta chiamata utenti nel nostro database attivo.

>> db.users.find().limit(3)

Questo recupera per noi un elenco dei primi tre documenti utente. Nota, questo è essenzialmente lo stesso di scrivere:

>> db.users.find().skip(0).limit(3)

Per i prossimi tre, possiamo farlo:

>> db.users.find().skip(3).limit(3)

Questo salta i primi tre record utente e ci dà i successivi tre. Se c'è solo un altro utente nel tuo database, non preoccuparti; MongoDB è abbastanza intelligente da restituire solo i dati presenti e non si arresta in modo anomalo.

Questo può essere generalizzato in questo modo e sarebbe più o meno equivalente a quello che faresti in un'applicazione web. Supponendo di avere variabili chiamate PAGE_SIZE che è impostato su 3 e un PAGE_NUMBER arbitrario :

>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)

Non posso parlare direttamente di come utilizzare questo metodo in Ruby on Rails, ma sospetto che la libreria Ruby MongoDB esponga questi metodi.