MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB :le curseur.toArray renvoie la promesse { }

Vous obtenez cette erreur car la méthode find() est asynchrone, c'est pourquoi la promesse est en attente :elle est toujours en cours de récupération.

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

Notez que vous avez vos données à l'intérieur d'un rappel. Pour plus d'informations sur les promesses, consultez Promise

Selon la version de votre nœud (7.6+ je crois), vous pouvez utiliser quelque chose comme ça

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

const results = await getResults();

Ainsi, votre code ressemble à un code synchrone. La clé ici est la commande async/wait qui attend les résultats de la promesse.

J'espère que cela vous aidera !