Consulta de rango para la paginación de MongoDB

Quiero implementar la paginación sobre un MongoDB. Para mi consulta de rango, pensé en usar ObjectIDs:

db.tweets.find({ _id: { $lt: maxID } }, { limit: 50 })

Sin embargo,segun los docs, la estructura de ObjectID significa que "los valores de ObjectId no representan un orden de inserción estricto":

La relación entre el orden de los valores de ObjectId y el tiempo de generación no es estricta en un solo segundo.Si múltiples sistemas, o múltiples procesos o subprocesos en un solo sistema generan valores, en un solo segundo; Los valores de ObjectId no representan un orden de inserción estricto. El sesgo del reloj entre los clientes también puede dar como resultado un ordenamiento no estricto incluso para los valores, ya que los controladores del cliente generan valores de ObjectId, no el proceso mongod.

Entonces pensé en consultar con una marca de tiempo:

db.tweets.find({ created: { $lt: maxDate } }, { limit: 50 })

Sin embargo, no hay garantía de que la fecha sea única; es muy probable que se puedan crear dos documentos en el mismo segundo. Esto significa que los documentos podrían perderse al paginar.

¿Hay algún tipo de consulta a distancia que me proporcione más estabilidad?

Respuestas a la pregunta(5)

Su respuesta a la pregunta