Да, има много близка еквивалентност между C#/SQL, съхраняващ един екземпляр на SqlConnection в статична променлива, и JS/MongoDB, съхраняващ един екземпляр на Db в глобална променлива. Основният модел за JS/MongoDB във функциите на Azure е (ако приемем, че сте актуални за async/await – като алтернатива можете да използвате обратни извиквания според вашата свързана статия):
// 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 ..
};
Това ще означава, че създавате само един Db обект на екземпляр на хост. Обърнете внимание, че това не е едно за всяко функционално приложение - ако използвате специален план за услуга за приложения, тогава ще има броя на екземплярите, които сте посочили в плана, а ако използвате план за потребление, тогава той ще варира в зависимост от това колко натоварено е вашето приложение.