Mantendo os primeiros resultados
Parte da seção Bancos de dados com MongoDB do Journey de Node.js da Coddy. Lição 12 de 29.
Uma página que mostra os dois livros mais recentes precisa apenas dos dois primeiros resultados. Um cursor tem um método limit para isso. O limite é um número de documentos, não um valor de campo.
await books.find().sort({year: 1}).limit(1).toArray();
// [Emma], o livro mais antigoEm um cursor de find, o MongoDB ordena antes de limitar, independentemente da ordem em que você encadeie as chamadas. Escreva sort primeiro para que o código seja lido nessa ordem. Ainda é retornado um array quando o limite é 1. Se menos documentos corresponderem do que o limite, o banco de dados retornará os documentos disponíveis. Nenhum espaço reservado vazio é adicionado.
Um valor de consulta é texto: Number(input.page) || 1 usa o número correspondente ou 1 quando ele está ausente. Essa prática aceita números inteiros positivos.
Desafio
FácilMantenha a ordenação fornecida, da mais recente para a mais antiga. Limite os resultados usando input.n da string de consulta; use 2 quando ele estiver ausente. Retorne os documentos sem alterações.
Teste clicando em “Jogar”: GET /result?n=2 retorna Kindred e depois Dune. Com ?n=1, apenas Kindred permanece. Sem n, o padrão são dois resultados. As entradas são números inteiros positivos.
Experimente você mesmo
export async function exercise(books, input) {
return await books.find().sort({ year: -1 }).toArray();
}
Todas as lições de Bancos de dados com MongoDB
1Documentos
Um livro como documentoColeções e bancos de dadosConectando-se ao MongoDBLendo documentos armazenadosInserindo documentosEncontrando um documentoEncontrando por ObjectIdComparando númerosFiltros de consultaEscolhendo os campos retornadosOrdenando os resultados da consultaMantendo os primeiros resultadosProjeção, ordenação e limitePratique por conta própria: Playground de Express