現在行っている文字列ではなく、クエリに実際の日付オブジェクトを使用します。 mongoは、 ISODate コード>
ヘルパーと基盤となるBSON(mongoがネイティブに使用するストレージデータ形式)には、Unix時間エポックからのミリ秒を示す64ビット(つまり8バイト)の符号付き整数である専用の日付型UTC datetimeがあり、クエリは次のように何も返しません。 mongoの日付フィールドをISO形式の文字列と比較します。
したがって、 toISOString()
を削除します 変換して日付オブジェクトを使用します:
if (data.date) {
const date = new Date();
const dateRange = data.date.slice(0, -1); // strip the "d" from "7d"
date.setDate(date.getDate() - dateRange);
query.start = { $lte: date };
console.log(query);
}
Call.find(query, function (error, docs) {
if (error) callback(error, null);
callback(null, docs);
});
さらに良いことに、 momentjs
を使用できます。 非常に直感的で簡単な日時操作APIを備えたプラグイン。使用できる方法の1つは、 extract()
です。
日付オブジェクトを取得する関数n
数日前:
if (data.date) {
const dateRange = data.date.slice(0, -1); // strip the "d" from "7d"
const date = moment().subtract(dateRange, "days");
query.start = { $lte: date };
console.log(query);
}
Call.find(query, function (error, docs) {
if (error) callback(error, null);
callback(null, docs);
});