I would like to retrieve an array from my mongodb collection, and before sending it back to the client, work with it. My desired outcome would be the following:
- Get array from collection_A
- Do the desired work with the array I just got, by having another mongodb query
- Pass the array back to the client
My current code looks like this:
db.collection("collection")
.find()
.toArray()
.then((arr) => {
arr.forEach(cur => {
db.collection("another-collection")
.count({key: cur.prop})
.then((retrieved) => {
cur.prop = retrieved; //The amount of count one live above
//This part runs later than the res.success below
})
.catch((err: any) => {
//Handle error
});
});
return arr;
})
.then(arr => {
res.success(arr);
})
.catch((err) => {
//Handle error
});
At the moment, the work I want to do with the retrieved array happens after res.success()
, so on the client I will get the original array.
Why is that so?