MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Node.js driver mongodb async/await query

Poiché a tutte le risposte mancano alcuni bit (blocchi di cattura, verifica che il client non sia null ) Sono venuto con la mia soluzione. Testato con il server Mongo v4.0.7 e il driver Node JS 3.2.2.

Nota che l'esempio è un programma console, in cui chiudiamo la connessione al server nel finally bloccare. In un'applicazione Web, le connessioni vengono riutilizzate. Consulta i documenti di Node Mongo. Inoltre, gli errori vengono registrati con librerie come Winston o Morgan e non registrati sulla console.

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();