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 antiguoCon 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.
Desafío
FácilConserva 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
1Documentos
Un libro como documentoColecciones y bases de datosConexión a MongoDBLectura de documentos almacenadosInserción de documentosBúsqueda de un documentoBúsqueda por ObjectIdComparación de númerosFiltros de consultaSelección de los campos devueltosOrdenación de los resultados de consultaConservar los primeros resultadosProyección, ordenación y límite2Modificación de documentos
Actualización de documentosOperadores de actualizaciónPractica por tu cuenta: Playground de Express