MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Riutilizzo delle connessioni al database con Funzioni di Azure tramite Javascript

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.