Die ersten Ergebnisse behalten
Teil des Abschnitts Datenbanken mit MongoDB der Node.js-Journey von Coddy. Lektion 12 von 29.
Eine Seite, die die zwei neuesten Bücher anzeigt, benötigt nur die ersten beiden Ergebnisse. Dafür gibt es bei einem Cursor eine limit-Methode. Das Limit ist eine Anzahl von Dokumenten, kein Feldwert.
await books.find().sort({year: 1}).limit(1).toArray();
// [Emma], das älteste BuchBei einem Find-Cursor sortiert MongoDB vor dem Begrenzen, unabhängig davon, in welcher Reihenfolge du die Aufrufe verkettest. Schreibe sort zuerst, damit der Code in dieser Reihenfolge zu lesen ist. Auch bei einem Limit von eins wird weiterhin ein Array zurückgegeben. Wenn weniger Dokumente als das Limit übereinstimmen, gibt die Datenbank die verfügbaren Dokumente zurück. Es werden keine leeren Platzhalter hinzugefügt.
Ein Abfragewert ist Text: Number(input.page) || 1 verwendet dessen Zahl oder 1, wenn er fehlt. Diese Vorgehensweise akzeptiert positive ganze Zahlen.
Aufgabe
EinfachBehalte die vorgegebene Sortierung mit den neuesten Einträgen zuerst bei. Begrenze die Ergebnisse anhand von input.n aus der Abfragezeichenfolge; verwende 2, wenn der Wert fehlt. Gib die Dokumente unverändert zurück.
Probiere „Spielen“ aus: GET /result?n=2 gibt zuerst Kindred und dann Dune zurück. Mit ?n=1 bleibt nur Kindred übrig. Wenn n fehlt, sind standardmäßig zwei Ergebnisse vorgesehen. Die Eingaben sind positive ganze Zahlen.
Probier es selbst
export async function exercise(books, input) {
return await books.find().sort({ year: -1 }).toArray();
}
Alle Lektionen in Datenbanken mit MongoDB
1Dokumente
Ein Buch als DokumentSammlungen und DatenbankenVerbindung zu MongoDB herstellenGespeicherte Dokumente lesenDokumente einfügenEin Dokument findenÜber ObjectId suchenZahlen vergleichenAbfragefilterZurückgegebene Felder auswählenAbfrageergebnisse sortierenDie ersten Ergebnisse behaltenProjektion, Sortierung und LimitÜbe selbstständig: Express-Playground