MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Thiết lập kết nối singleton với node.js và mongo

Đây là những gì sử dụng async đang chờ đợi trên singleton. Trong db.js của tôi

var MongoClient = require('mongodb').MongoClient;

var DbConnection = function () {

    var db = null;
    var instance = 0;

    async function DbConnect() {
        try {
            let url = 'mongodb://myurl.blablabla';
            let _db = await MongoClient.connect(url);

            return _db
        } catch (e) {
            return e;
        }
    }

   async function Get() {
        try {
            instance++;     // this is just to count how many times our singleton is called.
            console.log(`DbConnection called ${instance} times`);

            if (db != null) {
                console.log(`db connection is already alive`);
                return db;
            } else {
                console.log(`getting new db connection`);
                db = await DbConnect();
                return db; 
            }
        } catch (e) {
            return e;
        }
    }

    return {
        Get: Get
    }
}


module.exports = DbConnection();

Và trong tất cả các mô-đun sẽ sử dụng cùng một kết nối

var DbConnection = require('./db');

async function insert(data) {
    try {
        let db = await DbConnection.Get();
        let result = await db.collection('mycollection').insert(data);

        return result;
    } catch (e) {
        return e;
    }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:nhiều bộ sưu tập hoặc một bộ sưu tập lớn w / index

  2. mongoError:Topo đã bị phá hủy

  3. Các phương pháp hay nhất để sao lưu cơ sở dữ liệu

  4. Hướng dẫn về MongoDB với Java

  5. Hợp nhất hai bộ sưu tập trong MongoDB