포트폴리오의 수익률을 계산하는 기능을 구현하다가
" createConnection " 이라는 함수를 사용했다.
그 코드는 다음과 같고,
이번에 새로 배운 내용을 정리하자면...
1) 한 개의 DB에 접속할 때는 .connect() , 여러 개의 DB에 접속할 때는 .createConnection()
이전의 작업에서는 " mongoose.connect() ~ "
이런 식으로 코드를 작성했는데
이 경우, 여러 DB에 접속할 때마다
mongoose1.connect(URL1) ~
mongoose2.connect(URL2) ~
mongoose3.connect(URL3) ~
...
이런 식으로 만들어줘야 한다.
하지만 .createConnection()을 사용하면
mongoose.createConnection(URL1) ~
mongoose.createConnection(URL2) ~
mongoose.createConnection(URL3) ~
...
이런 식으로 작업이 가능해진다.
2) .createConnection() 을 사용할 때는 .on()과 .once()를 사용하여 DB 접속 이후에 실행할 동작을 정의
.createConnection() 은 .connect() 와 달리 Promise를 반환하지 않기 때문에
" mongoose.connect(URL).then(~).catch(~).finally(~); " 이런 식으로 코드를 작성하면 안된다.
let conn = mongoose.createConnection(URL);
conn.once("open", () => { ~ });
이런 식으로 작성하여,
DB 접속 이후에 실행할 동작을 정의해주어야 한다.
3) model은 생성된 connection에 대하여 만들어져야 함
참고 자료)
https://blog.naver.com/ksh81850/220368932849
https://hwb0218.tistory.com/38
https://www.mongodb.com/community/forums/t/create-names-connection-in-mongoose/222564/5
'개발 > 학습' 카테고리의 다른 글
MongoDB - 데이터 타입 수정 ; 문자열을 날짜로 (0) | 2024.07.14 |
---|---|
MongoDB 강의 내용 정리 - 2. (0) | 2024.04.12 |
MongoDB 강의 내용 정리 - 1. (0) | 2024.04.10 |