MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray restituisce Promise { }

Ricevi questo errore perché il metodo find() è asincrono, ecco perché la promessa è in sospeso:sta ancora recuperando.

db.collection('diseases').find({
  'ttl.txt': {
    $regex: data,
    $options: 'i'
  }
}).toArray().then((data) => {
    // Here you can do something with your data
    doSomethingWithTheResult(result)
})

Nota che hai i tuoi dati all'interno di una richiamata. Per ulteriori informazioni sulle promesse, controlla Promise

A seconda della versione del tuo nodo (credo 7.6+), puoi usare qualcosa del genere

async function getResults() {
    return db.collection('diseases').find({
        'ttl.txt': {
        $regex: data,
        $options: 'i'
        }
    }).toArray();
}

const results = await getResults();

Quindi il tuo codice sembra un codice sincrono. La chiave qui è il comando async/await che attende i risultati della promessa.

Spero che ti aiuti!