MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBで特定の日付以降のレコードを検索する方法

MongoDBで特定の日付以降(その日付を含む)のレコードを検索するには、比較演算子の$gte(greater than equal:以上)を使用します。まずは、ドキュメントを格納したコレクションを作成してみましょう。

1. コレクションの作成

insertOne()メソッドを使って、日付フィールドを持つドキュメントを挿入します。

> db.demo91.insertOne({"ArrivalDate":new ISODate("2020-01-10")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2d49fd79799acab037af66")
}
> db.demo91.insertOne({"ArrivalDate":new ISODate("2019-12-14")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2d4a0679799acab037af67")
}

2. 登録済みドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。

> db.demo91.find();

実行すると、以下のような出力が得られます。

{ "_id" : ObjectId("5e2d49fd79799acab037af66"), "ArrivalDate" : ISODate("2020-01-10T00:00:00Z") }
{ "_id" : ObjectId("5e2d4a0679799acab037af67"), "ArrivalDate" : ISODate("2019-12-14T00:00:00Z") }

3. 特定の日付以降のレコードを検索するクエリ

以下のように、$gte演算子にISODate()で指定した基準日を渡すことで、「指定日以降」のレコードだけを抽出できます。

> db.demo91.find({ArrivalDate: { $gte: ISODate('2020-01-10') } });

このクエリを実行すると、2020年1月10日以降のドキュメントのみが返されます。

{ "_id" : ObjectId("5e2d49fd79799acab037af66"), "ArrivalDate" : ISODate("2020-01-10T00:00:00Z") }

補足:関連する比較演算子

日付条件の検索では、用途に応じて以下の演算子も活用できます。

  • $gt:より大きい(指定日より後)
  • $gte:以上(指定日以降を含む)
  • $lt:より小さい(指定日より前)
  • $lte:以下(指定日以前を含む)

なお、$gteは「指定日の時刻(00:00:00)を含む」ため、当日のレコードも検索結果に含まれます。時刻まで厳密に絞り込みたい場合は、ISODate('2020-01-10T00:00:00Z') のように時刻を明示的に指定するとよいでしょう。

  1. MongoDBで価格が特定の値未満のレコードを検索する方法($lt演算子の使い方)

    MongoDBで、価格(Price)が特定の値より小さいレコードを検索したい場合には、比較クエリ演算子の一つである $lt(less than)を使用します。$ltは「指定した値より小さい」ドキュメントのみを抽出するための演算子です。この記事では、実際にコレクションを作成し、$lt演算子を使って条件に合致するドキュメントを検索する手順を順番に解説します。1. テスト用コレクションの作成まず、insertOne() メソッドを使って、サンプル用のコレクション「demo728」にドキュメントを挿入します。> db.demo728.insertOne({Price:75}); { ac

  2. MySQLで特定の日付以降のレコードを表示・抽出する方法

    MySQLで特定の日付以降のレコードを取得する方法 MySQLでは、WHERE句に比較演算子「>=」を使うことで、特定の日付以降のレコードを簡単に抽出できます。この記事では、サンプルテーブルの作成からデータ挿入、そして指定日以降のレコードを取得するクエリまで、手順を追って解説します。 1. テーブルを作成する まず、CREATE TABLE文で顧客名と出荷日を格納するテーブルを作成します。 mysql> create table DemoTable708 ( CustomerName varchar(100), ShippingDate date ); Query