sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray devuelve Promise { }

Estás recibiendo este error porque el método find() es asíncrono, por eso la promesa está pendiente:todavía se está recuperando.

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 tiene sus datos dentro de una devolución de llamada. Para obtener más información sobre las promesas, consulte Promise

Dependiendo de la versión de su nodo (creo que 7.6+), puede usar algo como esto

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

const results = await getResults();

Entonces su código parece un código síncrono. La clave aquí es el comando async/await que espera los resultados de la promesa.

¡Espero que ayude!