जवाब आपके अन्य प्रश्न पर सही परिणाम लौटाना चाहिए। मैं इस बात पर भी जोर दूंगा कि तारीख को डेट ऑब्जेक्ट के रूप में स्टोर करना बेहतर है।
आइए $dateFromString
. का उपयोग करके एक और तरीका आजमाएं इनपुट मूल्यों पर भी।
tableReportdata.find({
$expr: {
$and: [
{
$gte: [
{
$dateFromString: {
dateString: "$todaydate",
format: "%d-%m-%Y",
timezone: "UTC"
}
},
{
$dateFromString: {
dateString: "01-06-2020",
format: "%d-%m-%Y",
timezone: "UTC"
}
}
]
},
{
$lte: [
{
$dateFromString: {
dateString: "$todaydate",
format: "%d-%m-%Y",
timezone: "UTC"
}
},
{
$dateFromString: {
dateString: "07-06-2020",
format: "%d-%m-%Y",
timezone: "UTC"
}
}
]
}
]
}
}, function(err, docs) {
if (err) {
console.log(err);
return;
} else {
console.log("Successful loaded report data");
res.json({ data: docs, msg: 'Report data loaded.' });
}
});
एक सहायक कार्य के साथ छोटा संस्करण
const dateUTCexpr = (dateString) => ({
$dateFromString: {
dateString,
format: "%d-%m-%Y",
timezone: "UTC"
}
})
tableReportdata.find({
$expr: {
$and: [
{
$gte: [dateUTCexpr("$todaydate"), dateUTCexpr("01-06-2020")]
},
{
$lte: [dateUTCexpr("$todaydate"), dateUTCexpr("07-06-2020")]
}
]
}
}, function(err, docs) {
if (err) {
console.log(err);
return;
} else {
console.log("Successful loaded report data");
res.json({ data: docs, msg: 'Report data loaded.' });
}
});
अगर आपके पास todaydate
है String
. के रूप में परिभाषित किया गया है अपने स्कीमा में, यह भी सुनिश्चित करें कि यह आपके डेटाबेस में ठीक से रूपांतरित है, आप निम्न कोड का उपयोग कर सकते हैं
const dateUTCexpr = (dateString) => ({
$dateFromString: {
dateString,
format: "%d-%m-%Y",
timezone: "UTC"
}
})
tableReportdata.find({
todaydate: {
$gte: dateUTCexpr("01-06-2020"),
$lte: dateUTCexpr("07-06-2020")
}
}, function(err, docs) {
if (err) {
console.log(err);
return;
} else {
console.log("Successful loaded report data");
res.json({ data: docs, msg: 'Report data loaded.' });
}
});