본문 바로가기

백엔드

mongodb에서 useNewUrlParser, useUnifiedTopology 쓰는 이유

 

몽고디비를 쓸때

 

 

 

 

useNewUrlParser

useUnifiedTopology 이 두개는 항상 true로 해야 한다고 하고 그냥 그대로 따라 하기는 하는데, 왜 하는지 궁금했다.

 

 

mongoose.connect(process.env.DB_URL, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

왜 쓰는지 검색해보니, 

 

 

 

useNewUrlParser: 몽고디비에서 쓰는 parser를 이제 안쓰는데, (새로운 parser로 대체됨) 만약 새로운 파서에서 에러가 날 경우 예전에 쓰는 parser로 롤백 할수 있게 하기 위해서 라고 한다.

 

  • useNewUrlParser - The underlying MongoDB driver has deprecated their current connection string parser. Because this is a major change, they added the useNewUrlParser flag to allow users to fall back to the old parser if they find a bug in the new parser. You should set useNewUrlParser: true unless that prevents you from connecting. Note that if you specify useNewUrlParser: true, you must specify a port in your connection string, like mongodb://localhost:27017/dbname. The new url parser does not support connection strings that do not have a port, like mongodb://localhost/dbname.

번역:

useNewUrlParser - 기본 MongoDB 드라이버는 현재 연결 문자열 구문 분석기를 더 이상 사용하지 않습니다. 이는 주요 변경 사항이므로 사용자가 새 파서에서 버그를 발견한 경우 이전 파서로 폴백할 수 있도록 useNewUrlParser 플래그를 추가했습니다. 연결을 방해하지 않는 한 useNewUrlParser: true를 설정해야 합니다. useNewUrlParser: true를 지정하는 경우 연결 문자열에 포트를 지정해야 합니다(예: mongodb://localhost:27017/dbname). 새 URL 구문 분석기는 mongodb://localhost/dbname과 같이 포트가 없는 연결 문자열을 지원하지 않습니다.

 

 

 


 

useUnifiedTopology : 그냥 true가 디폴트임. 

 

 

useFindAndModify - True by default. Set to false to make findOneAndUpdate() and findOneAndRemove() use native findOneAndUpdate() rather than findAndModify()

 

번역:

useFindAndModify - 기본적으로 True입니다. false로 설정하면 findOneAndUpdate() 및 findOneAndRemove()가 findAndModify() 대신 기본 findOneAndUpdate()를 사용합니다.

 

 

이렇게 나왔다.