Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

109
Visualizações
Paginación de la API de MongoDB

Imagine una situación en la que un cliente se alimenta de objetos con un límite de 10.
Cuando se requieren los siguientes 10, envía una solicitud con omisión de 10 y límite de 10.

Pero, ¿qué sucede si se agregaron (o eliminaron) algunos objetos nuevos a la colección desde la primera solicitud con compensación == 0?

Luego, en la segunda solicitud (con desplazamiento == 10), la respuesta puede tener un orden de objetos incorrecto.

La clasificación en el momento de su creación no funciona aquí, porque tengo algunos feeds que se forman al clasificar a través de algún campo numérico.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Realmente depende de lo que quieras que sea el resultado.

Si desea que los objetos originales estén en su orden original, independientemente de las operaciones Eliminar y Agregar, debe hacer una copia de la lista (o al menos del orden) y luego hojearlo. Copie cada Id a una nueva colección que no cambia una vez que la página se ha cargado y luego pagina a través de eso.

Alternativamente, y quizás más probablemente, lo que desea es ver los siguientes 10 después del último en el conjunto actual, incluidas las operaciones Eliminar o Agregar que se hayan realizado desde entonces. Para esto, puede usar el orden en el que los está viendo y un filtro, $gt cualquiera que sea el último elemento. PERO eso no funciona cuando hay duplicados en el campo en el que está ordenando. Para evitarlo, deberá indexar ese campo MÁS algún otro campo que sea único por registro, por ejemplo, el campo _id. Ahora, puede tomar el último registro del primer conjunto y buscar registros que sean $eq el valor indexado y $gt el _id O simplemente $gt el valor indexado.

over 4 years ago · Santiago Trujillo Relatório

0

Puede agregar un campo de tiempo como created_at o updated_at. Debe actualizarse cada vez que se crea o modifica el documento y el campo debe ser único.

Luego consulte la base de datos para el rango de tiempo usando $gte y $lte junto con una ordenación en este campo de tiempo.

Esto garantiza que los cambios realizados fuera de la ventana de tiempo no se reflejen en la paginación, siempre que el campo de tiempo no tenga duplicados. Lo más probable es que si incluye microtiempo, no se produzcan duplicados.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda