sql >> Databáze >  >> NoSQL >> MongoDB

Nejlepší způsob, jak se připojit k MongoDB pomocí Node.js

Můžete použít globální proměnnou pro udržení připojení (např. db ), například:

var db = null // global variable to hold the connection

MongoClient.connect('mongodb://localhost:27017/', function(err, client) {
    if(err) { console.error(err) }
    db = client.db('test') // once connected, assign the connection to the global variable
})

app.get('/', function(req, res) {
    db.collection('test').find({}).toArray(function(err, docs) {
        if(err) { console.error(err) }
        res.send(JSON.stringify(docs))
    })
})

Nebo, chcete-li, můžete také použít Objekt Promise který vrací MongoClient pokud je volána bez argumentu zpětného volání:

var conn = MongoClient.connect('mongodb://localhost:27017/') // returns a Promise

app.get('/', function(req, res) {
    conn.then(client=> client.db('test').collection('test').find({}).toArray(function(err, docs) {
        if(err) { console.error(err) }
        res.send(JSON.stringify(docs))
    }))
})

Vezměte prosím na vědomí, že ve druhém příkladu jsem použil definici funkce tlusté šipky ES6.

Máte naprostou pravdu, že byste neměli volat MongoClient pokaždé. Použití globální proměnné nebo Promises umožňuje ovladači MongoDB node.js vytvořit fond připojení, což přináší alespoň dvě dobré věci:

  • Spojení jsou znovu použita ve fondu, takže po celou dobu životnosti vaší aplikace není nutné provádět vícenásobné nákladné nastavování/rozpojování. Jednou se připojíte a o zbytek se za vás postará řidič.
  • Můžete řídit množství připojení, které vaše aplikace vytvoří s databází, omezením velikosti fondu připojení.

Upravit 24. 8. 2018 :MongoClient.connect() metoda v ovladači node.js verze 3.0 a novější vrací objekt klienta místo databázového objektu. Výše uvedené příklady byly upraveny tak, aby byly aktuální s nejnovější verzí ovladače node.js.



  1. Statistiky databáze a sbírky MongoDB

  2. Vícenásobné použití pozičního operátoru `$` k aktualizaci vnořených polí

  3. Jaký je smysl více databází Redis?

  4. Vložte slovník do MongoDB s ovladačem c#