Qual é a melhor prática para conexões do MongoDB no Node.js?

Isso é algo que não está claro para mim (estou apenas começando com o Node e o Mongo), e realmente me preocupa por causa do desempenho e da sobrecarga do servidor (o que eu acho que é outra questão, mas vou chegar a isso em o final do post).

Então, supondo que eu esteja escrevendo uma API com o Node.js e o Restify, onde cada endpoint da API corresponde a uma função, eu deveria:

a) abra a conexão do banco de dados e armazene-o em um var global e, em seguida, use-o em todas as funções?
Exemplo:

// 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

b) abra a conexão db e depois coloque tudo em um fechamento gigante?
Exemplo:

// 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
    });
}

c) abrir e fechar o banco de dados cada vez que é necessário?
Exemplo:

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

Este último é o que eu faria por intuição, mas ao mesmo tempo não me sinto totalmente confortável fazendo isso. Não coloca muita pressão sobre o servidor Mongo? Especialmente quando (e espero chegar a isso), são centenas - se não milhares - de chamadas assim?

Agradeço antecipadamente.

questionAnswers(2)

yourAnswerToTheQuestion