Gunakan objek tanggal aktual untuk kueri Anda, bukan string seperti yang Anda lakukan saat ini. Karena mongo menyimpan tanggal yang dibungkus dengan ISODate
helper dan BSON yang mendasarinya (format data penyimpanan yang digunakan oleh mongo secara asli) memiliki datetime UTC tipe tanggal khusus yang merupakan bilangan bulat bertanda 64 bit (jadi, 8 byte) yang menunjukkan milidetik sejak zaman waktu Unix, kueri Anda tidak mengembalikan apa pun sebagai itu akan membandingkan bidang tanggal di mongo dengan string berformat ISO.
Jadi, lepaskan toISOString()
konversi dan gunakan objek tanggal:
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);
});
Lebih baik lagi, Anda dapat menggunakan momentjs
plugin yang memiliki API manipulasi datetime yang sangat intuitif dan mudah. Salah satu metode yang dapat Anda gunakan adalah subtract()
berfungsi untuk mendapatkan objek tanggal n
jumlah hari yang lalu:
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);
});