Как правильно сделать синхронный запрос MongoDB в Node.js?

Я использую драйвер Node.JS для MongoDB, и я хотел бы выполнить синхронный запрос, например:

function getAThing()
{
    var db = new mongo.Db("mydatabase", server, {});

    db.open(function(err, db)
    {
        db.authenticate("myuser", "mypassword", function(err, success)
        {
            if (success)
            {
                db.collection("Things", function(err, collection)
                {
                    collection.findOne({ name : "bob"}, function(err, thing)
                    {                           
                        return thing;
                    });
                });
            }
        });
    });
}

Проблема в том, что db.open является асинхронным вызовом (он не блокируется), поэтому getAThing возвращает "undefined" и я хочу, чтобы он возвращал результаты запроса. Я уверен, что мог бы использовать какой-то механизм блокировки, но я хотел бы знать правильный способ сделать что-то подобное.

Ответы на вопрос(3)

Ваш ответ на вопрос