복붙노트

[MONGODB] MongoDB를 데이터베이스 연결을 개방 유지

MONGODB

MongoDB를 데이터베이스 연결을 개방 유지

MongoDB의 사용의 많은 입문 예에서,이 같은 코드를 참조하십시오

var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:port/adatabase", function(err, db)
{
    /* Some operation... CRUD, etc. */
    db.close();
});

MongoDB를 다른 데이터베이스 시스템 같은 경우, 개폐 작업은 일반적으로 고가의 시간이 많다는 있습니다.

그래서, 내 질문은 이것이다 : 그것은 확인을 단순히 MongoClient.connect을 ( "할에 ... 한 번에 문서 삽입 (다양한 데이터베이스 관련 작업을 수행 모듈의 다양한 기능을 가지고, 어떤 모듈을 세계에 반환 된 데시벨 값을 할당 그들은 응용 프로그램의 다른 부분에 의해 호출하고 등 등 컬렉션, 업데이트 문서 ()하여 다시 사용 응용 프로그램이 완료되면 데시벨 값)하고, 만 다음 닫기를 할 수있다.

당신이 가서 일부 데이터베이스 관련 작업을 수행 할 필요가 없습니다 때마다 - 일단 즉, 개폐이 완료됩니다. 그리고 당신은 계속 재 사용시 반환하는 DB 객체를 최초 공개 \ 연결 만하면 실제로 모든 데이터베이스 관련 작업으로 수행하고있는 가까이에, 마지막에 처분합니다.

물론, 이후의 모든 I / O를 비동기, 닫기 전에 반드시 마지막 데이터베이스 작업이 닫기를 발행하기 전에 완료되었는지 확인 것입니다. 이처럼 보인다는 확인을해야하지만, 난 내가 MongoDB를에 새로 온 사람으로서 내가 뭔가를 누락 단지의 경우 한 번 확인하고 싶었다. 감사!

해결법

  1. ==============================

    1.네, 괜찮 전형적인 동작입니다. 앱을 시작 DB에 연결, 오랜 시간 동안 DB에 대한 작업을 할, 어쩌면 다시 연결 연결이 이제까지 예기치 않게 사망하고 단지 결코 가까운 연결 (단지 때 프로세스 다이를 발생 자동 가까운에 의존하는) 경우 .

    네, 괜찮 전형적인 동작입니다. 앱을 시작 DB에 연결, 오랜 시간 동안 DB에 대한 작업을 할, 어쩌면 다시 연결 연결이 이제까지 예기치 않게 사망하고 단지 결코 가까운 연결 (단지 때 프로세스 다이를 발생 자동 가까운에 의존하는) 경우 .

  2. ==============================

    2.MongoDB의 버전 ^ 3.1.8

    MongoDB의 버전 ^ 3.1.8

    약속과 연결을 초기화합니다 :

    const MongoClient = require('mongodb').MongoClient
    const uri = 'mongodb://...'
    const client = new MongoClient(uri)
    const connection = client.connect() // initialized connection
    

    그리고 당신은 당신이 데이터베이스에 대한 작업을 수행 할 때마다 연결을 전화 :

        // if I want to insert into the database...
        const connect = connection
        connect.then(() => {
            const doc = { id: 3 }
            const db = client.db('database_name')
            const coll = db.collection('collection_name')
            coll.insertOne(doc, (err, result) => {
                if(err) throw err
            })
        })
    
  3. from https://stackoverflow.com/questions/18650890/keeping-open-a-mongodb-database-connection by cc-by-sa and MIT license