MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray retorna Promise { }


Você está recebendo este erro porque o método find() é assíncrono, é por isso que a promessa está pendente:ela ainda está sendo buscada.
db.collection('diseases').find({
  'ttl.txt': {
    $regex: data,
    $options: 'i'
  }
}).toArray().then((data) => {
    // Here you can do something with your data
    doSomethingWithTheResult(result)
})

Observe que você tem seus dados dentro de um callback. Para obter mais informações sobre promessas, consulte Promise

Dependendo da versão do seu nó (7.6+, acredito), você pode usar algo assim
async function getResults() {
    return db.collection('diseases').find({
        'ttl.txt': {
        $regex: data,
        $options: 'i'
        }
    }).toArray();
}

const results = await getResults();

Portanto, seu código parece um código síncrono. A chave aqui é o comando async/await que aguarda os resultados da promessa.

Espero que ajude!