MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray gibt Promise { } zurück

Sie erhalten diesen Fehler, weil die find()-Methode asynchron ist, deshalb steht das Promise noch aus:Es wird immer noch abgerufen.

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

Beachten Sie, dass Sie Ihre Daten in einem Callback haben. Weitere Informationen zu Versprechungen finden Sie unter Versprechen

Abhängig von Ihrer Node-Version (ich glaube 7.6+) können Sie so etwas verwenden

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

const results = await getResults();

Ihr Code sieht also wie ein synchroner Code aus. Der Schlüssel hier ist der async/await-Befehl, der auf die Promise-Ergebnisse wartet.

Hoffe es hilft!