если вы можете использовать async / await, вы можете использовать for of
loop
const recs = await Case.find({}, {case_id: 1});
for (const rec of recs) {
console.log("x");
const t = await CustomerAgreement.findOne({ case_id: rec.case_id }).exec();
console.log("y");
}
console.log("z");
, если нет, вы можете использовать async , это библиотека, которая позволяет вам делатьоперации такого рода.
Case.find({}, { case_id: 1 }).then((recs) => {
async.each(recs, (rec, callback) => {
console.log("x");
CustomerAgreement.findOne({ case_id : rec.case_id }).then((t) => {
console.log("y");
callback();
});
}, (err) => {
if (err) {
console.log(err);
} else {
console.log('all records found successfully');
console.log("z");
}
});
});
PD: я не тестировал приведенный выше код, но теоретически должен работать.