I have this script which works perfectly but I experienced some delays because of these 2 for loops [i][j]. Is there any way to do the same function but with a better and more effective process like foreach or other?
User.find({}).lean(true).exec((err, users) => {
let getTEvent = [];
//nested loops() //callbacks
for (let i =0 ; i < users.length; i++) {
if(users[i].events && users[i].events.length) {
const dt = datetime.create();
dt.offsetInDays(0);
const formatted = dt.format('d/m/Y');
// console.log(formatted)
for (let j = 0; j < users[i].events.length; j++) {
if(users[i].events[j].eventDate === formatted) {
getTEvent.push({events: users[i].events[j]});
}
}
}
}
return res.json(getTEvent)
});
The main role of this code is:
find the data in Mongodb: find all users with or without events
loop through data and select events made by any users
push the results in an array which is
getEventin order to be useful later for the client side
Details:
The User is the model: const User = require('../models/users.model');
and events is [] array.
This is Mongodb structure of that models:

I got some delaysin coding or in execution of the code? Measurement results & method? \$\endgroup\$User? Obviously it is a service/model class that has afindmethod... can that find method accept parameters like filters for events? Please edit your post to include as much detail as possible - this will help reviewers give better reviews \$\endgroup\$