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

Consultas asincrónicas/en espera del controlador mongodb de Node.js

Dado que a todas las respuestas les faltan algunos bits (bloques de captura, verificar que el cliente no sea null) ) Vine con mi propia solución. Probado con el servidor Mongo v4.0.7 y el controlador Node JS 3.2.2.

Tenga en cuenta que el ejemplo es un programa de consola, donde cerramos la conexión con el servidor en el finally cuadra. En una aplicación web, las conexiones se reutilizan. Consulte los documentos de Node Mongo. Además, los errores se registran con bibliotecas como Winston o Morgan y no se registran en la consola.

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