so i am new to mongo db and don’t know why my logic is not working…its showing me an empty array when i try to get a value of specficly something,
here is the code
let totalEarnedCurrentMonth;
try {
const { startDate, endDate } = req.query;
// Calculate the start and end dates for the current month if not provided
let currentMonthStartDate, currentMonthEndDate;
if (!startDate && !endDate) {
const currentDate = new Date();
currentMonthStartDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
currentMonthEndDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);
} else {
currentMonthStartDate = new Date(startDate);
currentMonthEndDate = new Date(endDate);
}
totalEarnedCurrentMonth = await Ledger.aggregate([
{
$match: {
projectId: { $in: await Project.find({ userId: req.user._id }, '_id') },
date: { $gte: currentMonthStartDate, $lte: currentMonthEndDate }
}
},
{ $group: { _id: null, totalAmount: { $sum: '$amount' } } }
]);
// Extract the total earnings from the aggregation result
// const totalEarned = totalEarnedCurrentMonth.length ? totalEarnedCurrentMonth[0].totalAmount : 0;
console.log(totalEarnedCurrentMonth);
// res.status(200).json({ totalEarned });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Server error' });
}
Now the data which shows that i do have data in my database with specific needs
{ "_id": "66301f9a8b8889c0eac6d251", "projectId": "66301f108b8889c0eac6d248", "amount": 350, "type": "normal", "date": "2024-04-29T22:30:50.145Z", "__v": 0 },
i ahve multiple entries like this but still the get request on the the above api call is sending me an value of 0 why?? What mistake am i doing
Note: i tried it yester which is the month of april so i should be getting an resposne in get request right?
To get the value of current month ledger and rectify my mistake