¿Cuál es la mejor práctica para las conexiones MongoDB en Node.js?

Esto es algo que no está claro para mí (acabo de comenzar con Node y Mongo), y realmente me preocupa por el rendimiento y la tensión del servidor (lo que creo que es otra pregunta, pero lo abordaré en el final del post).

Entonces, asumiendo que estoy escribiendo una API con Node.js y Restify, donde cada punto final de API corresponde a una función, debería:

una) abra la conexión db y guárdela en una var global, y luego use eso en cada función?
Ejemplo:

// requires and so on leave me with a db var, assume {auto_reconnect: true}
function openDB() {
    db.open(function(err, db) {
        // skip err handling and so on
        return db;
    }
}

var myOpenDB = openDB(); // use myOpenDB in every other function I have

segundo) ¿Abrir la conexión db y luego poner todo en un cierre gigante?
Ejemplo:

// same as above
db.open(function(err, db) {
    // do everything else here, for example:
    server.get('/api/dosomething', function doSomething(req, res, next) { // (server is an instance of a Restify server)
        // use the db object here and so on
    });
}

do) ¿Abrir y cerrar la db cada vez que sea necesario?
Ejemplo:

// again, same as above
server.get('/api/something', function doSomething(req, res, next) {
    db.open(function(err, db) {
        // do something
        db.close();
    });
});

server.post('/api/somethingelse', function doSomethingElse(req, res, next) {
    db.open(function(err, db) {
        // do something else
        db.close();
    });
});

Esto último es lo que haría por intuición, pero al mismo tiempo no me siento del todo cómodo haciendo esto. ¿No pone demasiada tensión en el servidor Mongo? Especialmente cuando (y espero que llegue a eso) recibe cientos, si no miles, de llamadas como esta.

Gracias de antemano.

Respuestas a la pregunta(2)

Su respuesta a la pregunta