HOWTO · MongoDB

MongoDB で日付を比較する

このチュートリアルでは、MongoDB で日付を比較する方法について説明します。

日付はほとんどのデータベースで一般的なフィールドであり、MongoDB のコレクションから正確なドキュメントを見つける必要がある場合があります。 たとえば、一連の注文がある場合、特定の日付の前または後にこれらのドキュメントを検索することがあります。

この記事では、MongoDB で日付を比較する方法について説明します。 また、トピックを簡単にするための説明とともに、関連する例を示します。

MongoDB で日付を比較する

コレクション内の特定のドキュメントを見つけるには、find() という名前の MongoDB の組み込みメソッドを使用する必要があります。 このメソッドは、特定のドキュメントを取得するために指定された基準を渡します。

次に、ISODate() メソッドを使用して日付を選択します。

以下の例では、MongoDB の 2つのフィールドを比較する方法を示します。 まず、いくつかのドキュメントをコレクションに挿入しましょう。

db.order.insertMany( [
   { _id: 0, type: "Product A", OrderDate: new ISODate("2021-05-18T14:11:30Z") },
   { _id: 1, type: "Product B", OrderDate: new ISODate("2020-03-20T11:31:05Z") },
   { _id: 2, type: "Product C", OrderDate: new ISODate("2020-01-15T06:32:15Z") }
] )

それでは、日付 2021-02-22T10:03:46.000Z 以降に配置されたこれらのデータのみを取得してみましょう。 このためのコマンドは次のようになります。

db.order.find( { OrderDate: { $gt: ISODate("2021-02-22T10:03:46.000Z") } } )

上記のコマンドで、$gt は比較演算子 (より大きい) です。 必要に応じて使用できる他の比較演算子がいくつかあります。

MongoDB で利用可能な比較演算子

以下は、MongoDB の集計で使用できる使用可能な比較演算子を共有しています。

  • $eq - これは等号演算子を表します。
  • $ne - これは Not Equal 演算子を表します。
  • $gt - これは大なり演算子を表します。
  • $gte - これは、より大きいか等しい演算子を表します。
  • $lt - これは、Less Than 演算子を表します。
  • $lte - これは、Less Than or Equal 演算子を表します。
  • $in - これは、配列内の任意の値に一致します。
  • $nin - これは、配列内のどの値とも一致しません。

上記のコマンドを実行すると、コンソールに以下の出力が表示されます。

{ _id: 0,
  type: 'Product A',
  OrderDate: 2021-05-18T14:11:30.000Z }

注: 適切なコレクションに含まれているかどうかを確認してください。 特定のコレクションをオンにするには、コマンド use YourDB を使用します。 そうしないと、エラーが発生します。

この記事のコマンドは MongoDB データベース用であり、MongoDB コンソールで実行する必要があることに注意してください。