先頭の結果を残す
CoddyのNode.jsジャーニー「MongoDBによるデータベース」セクションの一部。レッスン 12/29。
最新の本を2冊表示するページでは、最初の2件の結果だけが必要です。カーソルには、このためのlimitメソッドがあります。limitはフィールドの値ではなく、ドキュメント数です。
await books.find().sort({year: 1}).limit(1).toArray();
// [Emma]、最も古い本findカーソルでは、呼び出しをどの順序で連結しても、MongoDBはlimitの前にsortを実行します。コードもその順序で読めるように、sortを先に書きましょう。limitが1でも、返されるのは配列です。一致するドキュメントがlimitより少ない場合、データベースは利用可能なドキュメントを返します。空のプレースホルダーは追加されません。
クエリ値はテキストです。Number(input.page) || 1は、その数値を使い、値がない場合は1を使います。この方法では、正の整数を受け付けます。
チャレンジ
簡単指定された新しい順の並べ替えを維持してください。クエリ文字列の input.n を使って結果を制限し、指定されていない場合は 2 を使用してください。ドキュメントは変更せずに返してください。
実行してみましょう: GET /result?n=2 は Kindred、次に Dune を返します。?n=1 の場合、Kindred のみが残ります。n が指定されていない場合、デフォルトで 2 件の結果が返されます。入力は正の整数です。
自分で試してみよう
export async function exercise(books, input) {
return await books.find().sort({ year: -1 }).toArray();
}
MongoDBによるデータベースのすべてのレッスン
自分で練習してみよう: Expressプレイグラウンド