Node.js mongodb driver async/await queries Node.js mongodb driver async/await queries mongoose mongoose

Node.js mongodb driver async/await queries


Since all answers are missing some bits (catch blocks, checking that client is not null) I came with my own solution. Tested with Mongo server v4.0.7 and Node JS driver 3.2.2.

Note that the example is a console program, where we close the connection to the server in the finally block. In a web application, the connections are reused.See Node Mongo docs. Also, the errors are logged with libraries such as Winston or Morgan and not console logged.

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


Edit: 'mongodb' v3.x

according to mongoDB ES6 future you can use this way;

let MongoClient = require('mongodb').MongoClient;const connectionString = 'mongodb://localhost:27017';    (async () => {        let client = await MongoClient.connect(connectionString,            { useNewUrlParser: true });        let db = client.db('dbName');        try {           const res = await db.collection("collectionName").updateOne({                "someKey": someValue           }, { $set: someObj }, { upsert: true });           console.log(`res => ${JSON.stringify(res)}`);        }        finally {            client.close();        }    })()        .catch(err => console.error(err));


Thanks. Working great with ES6:

const middleWare = require('middleWare');const MONGO = require('mongodb').MongoClient;router.get('/', middleWare(async (req, res, next) => {    const db = await MONGO.connect(url);    const MyCollection = db.collection('MyCollection');    const result = await MyCollection.find(query).toArray();    res.send(result);}))