sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo paginar con Mongoose en Node.js?

Estoy muy decepcionado por las respuestas aceptadas en esta pregunta. Esto no escalará. Si lee la letra pequeña en cursor.skip( ):

El método cursor.skip() suele ser costoso porque requiere que el servidor camine desde el comienzo de la colección o el índice para obtener el desplazamiento o la posición de salto antes de comenzar a devolver el resultado. A medida que aumenta el desplazamiento (por ejemplo, el número de página anterior), cursor.skip() se volverá más lento y hará un uso más intensivo de la CPU. Con colecciones más grandes, cursor.skip() puede convertirse en límite de E/S.

Para lograr la paginación de una manera escalable, combine un limit() junto con al menos un criterio de filtro, una fecha createdOn se adapta a muchos propósitos.

MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )