Du får det här felet eftersom find()-metoden är asynkron, det är därför löftet väntar:det hämtas fortfarande.
db.collection('diseases').find({
'ttl.txt': {
$regex: data,
$options: 'i'
}
}).toArray().then((data) => {
// Here you can do something with your data
doSomethingWithTheResult(result)
})
Lägg märke till att du har dina data i en återuppringning. För mer information om löften, kolla Löfte
Beroende på din nodversion (7.6+ tror jag), kan du använda något sånt här
async function getResults() {
return db.collection('diseases').find({
'ttl.txt': {
$regex: data,
$options: 'i'
}
}).toArray();
}
const results = await getResults();
Så din kod med ser ut som en synkron kod. Nyckeln här är async/await-kommandot som väntar på löftesresultaten.
Hoppas det hjälper!