Sim, há uma equivalência muito próxima entre C#/SQL armazenando uma única instância SqlConnection em uma variável estática e JS/MongoDB armazenando uma única instância Db em uma variável global. O padrão básico para JS/MongoDB no Azure Functions é (supondo que você esteja atualizado para async/await - como alternativa, você pode usar retornos de chamada conforme seu artigo vinculado):
// getDb.js
let dbInstance;
module.exports = async function() {
if (!dbInstance) {
dbInstance = await MongoClient.connect(uri);
}
return dbInstance;
};
// function.js
const getDb = require('./getDb.js');
module.exports = async function(context, trigger) {
let db = await getDb();
// ... do stuff with db ..
};
Isso significa que você instanciará apenas um objeto Db por instância de host. Observe que isso não é um por aplicativo de funções - se você estiver usando um plano de serviço de aplicativo dedicado, haverá o número de instâncias que você especificou no plano e, se estiver usando um plano de consumo, ele variará dependendo de quão ocupado seu aplicativo está.