Menu
CoddyTech

Conservar los primeros resultados

Parte de la sección Bases de datos con MongoDB del Journey de Node.js de Coddy. Lección 12 de 29.

Una página que muestra los dos libros más recientes solo necesita los dos primeros resultados. Un cursor tiene un método limit para esto. El límite es un número de documentos, no un valor de campo.

await books.find().sort({year: 1}).limit(1).toArray();
// [Emma], el libro más antiguo

Con un cursor de find, MongoDB ordena antes de limitar, sin importar el orden en que encadenes las llamadas. Escribe sort primero para que el código se lea en ese orden. Se sigue devolviendo un arreglo cuando el límite es uno. Si coinciden menos documentos que el límite, la base de datos devuelve los documentos disponibles. No se añaden marcadores de posición vacíos.

Un valor de consulta es texto: Number(input.page) || 1 usa su valor numérico, o 1 si falta. Esta práctica acepta números enteros positivos.

challenge icon

Desafío

Fácil

Conserva el ordenamiento suministrado, del más reciente al más antiguo. Limita los resultados usando input.n de la cadena de consulta; usa 2 cuando no esté presente. Devuelve los documentos sin cambios.

Prueba «Ejecutar»: GET /result?n=2 devuelve Kindred después Dune. Con ?n=1, solo queda Kindred. Si no se proporciona n, el valor predeterminado es dos resultados. Las entradas son números enteros positivos.

Pruébalo tú mismo

export async function exercise(books, input) {
    return await books.find().sort({ year: -1 }).toArray();
}

Todas las lecciones de Bases de datos con MongoDB

Practica por tu cuenta: Playground de Express