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

Async/await-Abfragen des Node.js-Mongodb-Treibers

Da allen Antworten einige Bits fehlen (catch blocks, check that client is not null ) Ich kam mit meiner eigenen Lösung. Getestet mit Mongo-Server v4.0.7 und Node JS-Treiber 3.2.2.

Beachten Sie, dass es sich bei dem Beispiel um ein Konsolenprogramm handelt, bei dem wir die Verbindung zum Server im finally schließen Block. In einer Webanwendung werden die Verbindungen wiederverwendet. Siehe Node Mongo-Dokumentation. Außerdem werden die Fehler mit Bibliotheken wie Winston oder Morgan und nicht mit der Konsole protokolliert.

const MongoClient = require('mongodb').MongoClient;

const url = 'mongodb://localhost:27017';

async function findOne() {

    const client = await MongoClient.connect(url, { useNewUrlParser: true })
        .catch(err => { console.log(err); });

    if (!client) {
        return;
    }

    try {

        const db = client.db("testdb");

        let collection = db.collection('cars');

        let query = { name: 'Volkswagen' }

        let res = await collection.findOne(query);

        console.log(res);

    } catch (err) {

        console.log(err);
    } finally {

        client.close();
    }
}

await findOne();