async function asyncFunction(name) { await collection.find({ "name": new RegExp(name, 'i') }, (err, res) => { if(err) console.log("Error:",err); else { async.map(res, (item, callback)=>{ anotherCollection.findById(item.id, (err, res)=>{ if(err) return callback(err); else{ let toRet={}; // Add Business Logic return callback(null, toRet); } }) }, (err, res)=>{ if(err) console.log("Error:",err); else console.log("Success:",res);; }) } }) }