Menu
CoddyTech

先頭の結果を残す

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を使います。この方法では、正の整数を受け付けます。

challenge icon

チャレンジ

簡単

指定された新しい順の並べ替えを維持してください。クエリ文字列の 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プレイグラウンド