MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consultas assíncronas/aguardadas do driver Node.js mongodb


Como todas as respostas estão faltando alguns bits (capturar blocos, verificar se o cliente não é null ) Eu vim com minha própria solução. Testado com o servidor Mongo v4.0.7 e o driver Node JS 3.2.2.

Observe que o exemplo é um programa de console, onde fechamos a conexão com o servidor no finally quadra. Em um aplicativo da Web, as conexões são reutilizadas. Consulte a documentação do Node Mongo. Além disso, os erros são registrados com bibliotecas como Winston ou Morgan e não são registrados no 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();