Sì, esiste un'equivalenza molto stretta tra C#/SQL che archivia una singola istanza SqlConnection in una variabile statica e JS/MongoDB che archivia una singola istanza Db in una variabile globale. Il modello di base per JS/MongoDB in Funzioni di Azure è (supponendo che tu sia aggiornato per async/await, in alternativa puoi usare i callback come da articolo collegato):
// 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 ..
};
Ciò significa che istanziare un solo oggetto Db per istanza host. Tieni presente che questo non è uno per app per le funzioni:se stai utilizzando un piano di servizio app dedicato, ci sarà il numero di istanze che hai specificato nel piano e se stai utilizzando un piano a consumo, cambierà a seconda di quanto è occupata la tua app.