Menu
CoddyTech

数値を比較する

CoddyのNode.jsジャーニー「MongoDBによるデータベース」セクションの一部。レッスン 8/29。

フィルターは完全一致する値を指定したり、数値の範囲を比較したりできます。範囲を指定するには、フィールドのフィルター内で比較演算子を使います。$gteは「以上」を意味します。

const minimum = Number(input.minimum);
const list = await products.find({price: {$gte: minimum}}).toArray();

クエリ文字列の値はテキストとして渡されます。数値の上限を保存済みの数値と比較する前に、Numberで変換します。この例では、価格が指定された最小値以上の商品を選択します。一致するドキュメントが1つだけでも、結果は配列のままです。次のレッスンでは、本棚のルートにオプションのフィルターを組み合わせます。

challenge icon

チャレンジ

簡単

exercise.jsで、数値の年がinput.from以上である書籍を返してください。サーバーはクエリ文字列からその値を受け取ります。指定されたコレクションを使って、一致するドキュメントを返してください。

GET /result?from=1960を試してください。DuneとKindredが一致します。?from=1970を試してください。一致するのはKindredだけです。?from=2000を試してください。空の配列を返します。この演習の入力は、有効な数値の年です。

データベースに$gteを使って年を比較させてください。境界値が1965の場合、KindredだけでなくDuneも含まれます。

自分で試してみよう

export async function exercise(books, input) {
    return await books.find().toArray();
}

MongoDBによるデータベースのすべてのレッスン

自分で練習してみよう: Expressプレイグラウンド