web-dev-qa-db-ja.com

Mongodbが本日日付で作成結果を検索

私は月に結果を得るためにこのクエリを持っています。しかし、今日の結果を取得したかった。

var start = new Date(2010, 11, 1);
var end = new Date(2010, 11, 30);

db.posts.find({created_on: {$gte: start, $lt: end}});

これを行う最良の方法は何ですか?

20
Rex Adrivan

開始日オブジェクトは、現在の日付時間を_00:00:00.000_(ミリ秒精度)で保持し、今日の日付の時間を_23:59:59.999_に設定する必要があります。

_var start = new Date();
start.setHours(0,0,0,0);

var end = new Date();
end.setHours(23,59,59,999);
_

次に、MongoDBクエリ演算子で変更された日付オブジェクトを通常どおりに渡します。

_db.posts.find({created_on: {$gte: start, $lt: end}});
_

momentjs ライブラリを使用している場合、これは startOf() および endOf() 文字列_'day'_を引数として渡す、現在の日付オブジェクトのメソッド:

_var start = moment().startOf('day'); // set to 12:00 am today
var end = moment().endOf('day'); // set to 23:59 pm today
_
49
chridam