MongoDBで2日前のレコードを取得する方法


  1. 日付を計算する: 現在の日付から2日を引いて、2日前の日付を計算します。この日付をプログラム内で使用します。

  2. クエリを作成する: MongoDBのクエリ言語を使用して、2日前のレコードを検索するクエリを作成します。以下は、MongoDBシェルでの例です。

var twoDaysAgo = new Date();
twoDaysAgo.setDate(twoDaysAgo.getDate() - 2);
db.collection.find({ date: { $gte: twoDaysAgo } });

上記の例では、collectionは対象のコレクション名、dateはレコード内の日付フィールド名を指定します。$gte演算子を使用することで、指定した日付以降のレコードを検索します。

  1. コード例: 上記のクエリを使用する簡単なNode.jsのコード例を以下に示します。
const MongoClient = require('mongodb').MongoClient;
async function getTwoDaysOldRecords() {
  const uri = 'mongodb://localhost:27017';
  const client = new MongoClient(uri);
  try {
    await client.connect();
    const database = client.db('mydatabase');
    const collection = database.collection('mycollection');
    const twoDaysAgo = new Date();
    twoDaysAgo.setDate(twoDaysAgo.getDate() - 2);
    const query = { date: { $gte: twoDaysAgo } };
    const result = await collection.find(query).toArray();
    console.log(result);
  } catch (error) {
    console.error('Error:', error);
  } finally {
    await client.close();
  }
}
getTwoDaysOldRecords();

上記の例では、MongoDBドライバのMongoClientを使用してデータベースに接続し、指定した日付範囲のレコードを検索しています。mydatabasemycollectionはそれぞれデータベース名とコレクション名に置き換えてください。

このようにして、MongoDBを使用して2日前のレコードを取得することができます。ご参考までに、上記のコード例はNode.jsを使用していますが、他のプログラミング言語でも同様の手順で実現することができます。