MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Най-добрият начин да се свържете с MongoDB с помощта на Node.js

Можете да използвате глобална променлива за задържане на връзката (напр. db ), например:

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

Или, ако предпочитате, можете също да използвате обещания обект който се връща от MongoClient ако се извиква без аргумент за обратно извикване:

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

Моля, обърнете внимание, че използвах дефиницията на функцията за дебела стрелка ES6 във втория пример.

Абсолютно прав сте, че не трябва да се обаждате на MongoClient всеки път. Използването на глобална променлива или Promises позволява на драйвера MongoDB node.js да създаде пул за връзки, което постига поне две добри неща:

  • Връзките се използват повторно в пул, така че няма множество скъпи процеси за настройка/разваляне за целия живот на вашето приложение. Свързвате се веднъж и оставяте шофьорът да се погрижи за останалото вместо вас.
  • Можете да контролирате количеството връзки, които вашето приложение прави към базата данни, като ограничите размера на пула от връзки.

Редактиране на 24.08.2018 :MongoClient.connect() метод в драйвера node.js версия 3.0 и по-нова връща клиентски обект вместо обект на база данни. Примерите по-горе бяха променени, за да се поддържат актуални с най-новата версия на драйвера node.js.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Създайте индекс за заместващи символи в MongoDB

  2. Заявка за вложен масив в MongoDB

  3. BSON библиотека за java?

  4. Преобразуване на речник<string, object>-to-BsonDocument, пропускайки полето _t

  5. Как да извлечете подробностите от mongo db и да изпратите или съхраните в обект в метода nodejs Fork