MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Requêtes asynchrones/en attente du pilote mongodb Node.js

Étant donné que toutes les réponses manquent de bits (blocs catch, vérification que le client n'est pas null ) Je suis venu avec ma propre solution. Testé avec le serveur Mongo v4.0.7 et le pilote Node JS 3.2.2.

Notez que l'exemple est un programme console, où nous fermons la connexion au serveur dans le finally bloc. Dans une application Web, les connexions sont réutilisées. Voir les docs Node Mongo. De plus, les erreurs sont consignées avec des bibliothèques telles que Winston ou Morgan et non consignées sur la 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();