title: What is the right way to make a synchronous MongoDB query in Node.js?
body: <p>I'm using the Node.JS driver for MongoDB, and I'd like to perform a synchronous query, like such:</p>
  
  <pre><code>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;
                      });
                  });
              }
          });
      });
  }
  </code></pre>
  
  <p>The problem is, db.open is an asychronous call (it doesn't block), so the getAThing returns "undefined" and I want it to return the results of the query. I'm sure I could some sort of blocking mechanism, but I'd like to know the right way to do something like this.</p>