MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara terbaik untuk terhubung ke MongoDB menggunakan Node.js

Anda dapat menggunakan variabel global untuk menahan koneksi (mis. db ), misalnya:

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))
    })
})

Atau, jika mau, Anda juga dapat menggunakan objek Janji yang dikembalikan oleh MongoClient jika dipanggil tanpa argumen panggilan balik:

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))
    }))
})

Harap perhatikan bahwa saya menggunakan definisi fungsi panah gemuk ES6 dalam contoh kedua.

Anda benar sekali bahwa Anda tidak boleh memanggil MongoClient setiap saat. Menggunakan variabel global atau Promises memungkinkan driver MongoDB node.js membuat kumpulan koneksi, yang mencapai setidaknya dua hal baik:

  • Koneksi digunakan kembali dalam kumpulan, jadi tidak ada banyak proses penyiapan/penghancuran yang mahal selama masa pakai aplikasi Anda. Anda terhubung sekali, dan biarkan pengemudi mengurus sisanya untuk Anda.
  • Anda dapat mengontrol jumlah koneksi yang dibuat aplikasi Anda ke dalam database, dengan membatasi ukuran kumpulan koneksi.

Edit 24-08-2018 :MongoClient.connect() metode di driver node.js versi 3.0 dan yang lebih baru mengembalikan objek klien alih-alih objek database. Contoh di atas telah dimodifikasi agar tetap up to date dengan versi driver node.js terbaru.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Haruskah saya menggunakan opsi allowDiskUse di lingkungan produk?

  2. Bekerja dengan karakter khusus dalam koleksi Mongo

  3. Bagaimana mengembangkan aplikasi untuk MongoDB dan Redpanda menggunakan Docker Compose

  4. Set Replika MongoDB dengan Arbiter

  5. mongodb $dalam batas