I'm pretty new to javascript, and I'm creating a dashboard for an e-commerce website that I am working on. and I'm trying to show data for all dates starting with the date of the first order made. MongoDB of course only shows data for the dates that the order were made, so I'm trying to add missing dates to my MongoDB data using javascript. I'm having some trouble doing this and I would really appreciate any advice or help on how to get this to work.
Thank you!
OrderRouter.js
import express from 'express';
import expressAsyncHandler from 'express-async-handler';
import Order from '../models/orderModel.js';
import User from '../models/userModel.js';
import Product from '../models/productModel.js';
orderRouter.get(
'/summary',
isAuth,
isAdmin,
expressAsyncHandler(async (req, res) => {
const dailySales = await Order.aggregate([
{
$group: {
_id: { $dateToString: { format: '%m-%d-%Y', date: '$createdAt' } },
orders: { $sum: 1 },
sales: { $sum: '$totalPrice' },
},
},
{ $sort: { _id: 1 } },
]);
const datesArray = getDates(startDate, endDate)
for(date in datesArray){
isInArray = true;
for (day in dailySales){
if (day._id === date){
isInArray = true;
}
}
if (isInArray = false){
dailySales.push({ "_id":"date", "orders":0, "sales":0})
}
}
res.send({dailySales });
})
);