문서 메뉴
문서 홈
/ / /
Node.js 드라이버

드라이버 버전 업그레이드

이 페이지의 내용

  • 개요
  • 업그레이드 방법
  • 주요 변경 사항
  • 버전 6.0 호환성이 손상되는 변경
  • 버전 5.0 주요 변경 사항
  • 버전 4.0 주요 변경 사항
  • 서버 릴리스 호환성 변경 사항
  • 버전 4.2 서버 릴리스 지원 변경 사항

이 페이지에서는 드라이버를 새 버전으로 업그레이드하는 방법을 알아볼 수 있습니다. 이 페이지에는 해당되는 경우 기능 손실 없이 드라이버를 업그레이드하기 위해 애플리케이션에서 수행해야 하는 변경 사항도 포함되어 있습니다.

업그레이드하기 전에 다음 작업을 수행하세요:

  • 새 드라이버 버전이 애플리케이션이 연결되는 MongoDB Server 버전 및 애플리케이션이 실행되는 Node.js 버전과 호환되는지 확인합니다. 이 정보는 호환성 페이지를 참조하세요.

  • 이 가이드의 호환성이 손상되는 변경 섹션에서 애플리케이션에서 현재 사용 중인 드라이버 버전과 계획된 업그레이드 버전 간의 호환성이 손상되는 변경을 해결하세요. MongoDB Server 릴리스 호환성 변경 사항에 대해 자세히 알아보려면 MongoDB Server 릴리스 호환성 변경 사항 섹션을 참조하세요.

Stable API를 사용하여 드라이버 버전을 업그레이드할 때 애플리케이션에 적용해야 하는 변경 사항을 최소화할 수 있습니다.

드라이버 버전을 업그레이드하려면 애플리케이션 디렉토리에서 다음 명령을 실행하세요.

npm install mongodb@6.8

다른 버전의 드라이버로 업그레이드하려면 @ 기호 뒤의 정보를 원하는 버전 번호로 바꾸세요. 명령에 대한 자세한 내용은 npm-install npm install 참조하세요. npm 문서를 참조하세요.

주요 변경 사항(breaking change)이란 특정 버전의 드라이버에 적용되는 규칙이나 동작의 수정으로, 애플리케이션이 제대로 작동하는 걸 방해할 수 있습니다.

이 섹션의 호환성이 손상되는 변경은 이를 도입한 드라이버 버전별로 분류됩니다. 드라이버 버전을 업그레이드할 때 현재 버전과 업그레이드 버전 간의 호환성이 손상되는 변경을 모두 확인합니다. 예를 들어 드라이버를 v3.x 에서 v5.x로 업그레이드하는 경우 v4.0 및 v5.0 아래에 나열된 모든 호환성이 손상되는 변경을 해결합니다.

  • Node.js 드라이버 버전 6.0을 사용하려면 Node.js v16.20.1 이상이 필요합니다.

  • 드라이버에서 addUser() 헬퍼 명령에 대한 지원을 제거합니다. 대신 createUser MongoDB Shell 명령을 사용하세요.

  • 드라이버가 collStats 작업에 대한 지원을 제거합니다. 대신 $collStats 애그리게이션 연산자를 사용하세요.

  • 드라이버는 더 이상 사용되지 않는 ssl 접두사 옵션과 MongoClientOptions 유형의 tlsCertificateFile 옵션을 모두 제거합니다. 대신 SecureContext 객체를 만들거나 MongoClientOptions 인스턴스에서 tls-접두사가 붙은 옵션을 설정하세요.

  • 드라이버는 MongoClient 인스턴스를 생성할 때가 아니라 MongoClient.connect() 메서드를 호출할 때 tlsCAFiletlsCertificateKeyFile 연결 옵션에 설정된 파일을 읽습니다.

  • 드라이버가 keepAlivekeepAliveInitialDelay 연결 옵션을 제거합니다. keepAlive 값은 영구적으로 true로 설정되고 keepAliveInitialDelay 값은 300000 밀리초(300초)로 설정됩니다.

  • Db.command() 메서드는 특정 명령과 관련이 없는 옵션만 허용합니다. 이 같은 옵션을 자세히 알아보려면 명령 실행 가이드의 명령어 명령 옵션(Command Options) 섹션을 참조하세요.

  • mongodb-client-encryption을 종속성으로 추가하는 경우 주요 버전 번호가 Node.js 드라이버의 주요 버전 번호와 일치해야 합니다. 예를 들어 Node.js 드라이버 v6.xx에는 mongodb-client-encryption v6.xx가 필요합니다.

  • 이제 자동 암호화 메서드가 Node.js 드라이버에 추가되었습니다. 이러한 메서드는 mongodb-client-encryption가 아니라 드라이버에서 가져와야 합니다.

  • 12자 문자열을 허용하는 ObjectId 생성자를 제거했습니다.

  • 원본 명령 결과 대신 null을 반환하도록 abortTransaction()commitTransaction() 메서드를 수정했습니다.

  • true 또는 false 이외의 값을 부울로 허용하는 연결 옵션 헬퍼를 제거했습니다. 연결 문자열이나 MongoClient 생성자에 true 또는 false 값을 제공해야 합니다.

  • 문자열을 허용하는 Binary BSON type 생성자를 제거했습니다.

  • Binary.write() 메서드는 더 이상 이진 BSON 객체에 쓸 문자열을 허용하지 않습니다.

  • ClientEncryption API는 콜백 대신 프로미스를 반환합니다.

  • SOCKS5 프록시 지원을 활성화하는 socks 패키지는 피어 옵션 종속성입니다. 애플리케이션에서 SOCKS5를 활성화하려면 패키지를 설치해야 합니다. 자세한 내용은 SOCKS5 프록시 지원 활성화를 참조하세요.

  • 클라이언트에서 세션을 시작한 다음 세션을 다른 클라이언트로 전달하면 해당 세션에서 작업을 수행할 때 드라이버에서 오류가 발생합니다.

  • 복합 연산 메서드의 includeResultMetadata 옵션은 기본적으로 false입니다. 자세한 내용은 복합 연산 가이드의 내장 메서드 섹션을 참조하세요.

  • withSession() 메서드는 제공된 함수가 반환하는 값을 반환합니다. 이전 드라이버 버전에서는 이 메서드가 undefined를 반환합니다. withTransaction() 메서드는 콜백이 반환하는 값을 반환합니다. 이전 드라이버 버전에서 이 메서드는 드라이버가 연결되는 MongoDB 서버 버전이나 유형에 따라 달라지는 서버 명령 응답을 반환합니다. 트랜잭션에 대해 자세히 알아보려면 트랜잭션 수행 사용 예시 및 트랜잭션 가이드를 참조하세요.

  • 옵션이었던 kerberos 종속성 최소 버전을 2.0.1로 높이고 버전 1.x에 대한 지원을 중단했습니다.

  • 선택적 zstd 종속성 최소 버전을 1.1.0으로 상향했습니다.

  • 드라이버는 더 이상 Node.js v12 이하와 호환되지 않습니다. 이 버전의 드라이버를 사용하려면 Node.js v14.20.1 이상을 사용해야 합니다.

  • 이 드라이버는 promise 기반 API를 위해 콜백에 대한 지원을 제거합니다. 다음 목록은 콜백 사용자가 이 버전을 채택하기 위한 몇 가지 전략을 제공합니다:

    • Promise 기반 API로 마이그레이션(권장)

    • Promise 기반 API를 사용하고 util.callbackify

    • 콜백을 계속 사용하기 위한 mongodb-legacy 추가

    이러한 전략에 대한 자세한 내용은 v5.0 변경 로그를 참조하세요.

  • 이 드라이버는 Collection.insert(), Collection.update()Collection.remove() 도우미 메서드에 대한 지원을 제거합니다. 다음 목록은 제거된 메서드의 기능을 교체하는 방법에 대한 지침을 제공합니다.

    • Collection.insert()에서 insertOne() 또는 insertMany()로 마이그레이션합니다.

    • Collection.update()에서 updateOne() 또는 updateMany()로 마이그레이션합니다.

    • Collection.remove()에서 deleteOne() 또는 deleteMany()로 마이그레이션합니다.

  • 드라이버는 더 이상 기본적으로 AWS SDK 모듈을 포함하지 않습니다.

  • 드라이버가 더 이상 bson-ext 패키지를 자동으로 가져오지 않습니다.

  • 드라이버는 사용자 지정 Promise 라이브러리에 대한 지원을 제거합니다. 드라이버는 더 이상 MongoClientpromiseLibrary 옵션 및 사용자 지정 Promise 라이브러리를 지정할 수 있는 Promise.set 내보내기를 지원하지 않습니다.

  • 드라이버에서 Collection.mapReduce() 헬퍼에 대한 지원을 제거합니다.

  • BulkWriteResult 유형에 더 이상 공개적으로 열거 가능한 result 속성이 없습니다.

  • 다음 유형, 옵션 및 메서드가 제거되었습니다.

    • BulkResult.lastOp() 메서드

    • opTime 속성: BulkResult

    • BulkWriteOptions.keepGoing 옵션

    • WriteConcernError.err() 메서드

    • AddUserOptions.digestPassword 옵션

    • Kerberos gssapiCanonicalizeHostName 옵션

    • slaveOk 다음 항목을 위한 옵션 및 메서드 제거: secondaryOk

    • ObjectID 선호하는 유형 제거 ObjectId

    • AsyncIterator 다음 항목을 위한 인터페이스 제거: AsyncGenerator

  • 드라이버는 더 이상 Node.js v12.8 이전과 호환되지 않습니다. 이 버전의 드라이버를 사용하려면 Node.js v12.9 이상을 사용해야 합니다.

  • Cursor 유형은 더 이상 Readable을 직접 확장하지 않습니다.

  • ChangeStream 인스턴스를 EventEmitter로 사용한 후에는 반복자(iterator)로 사용할 수 없습니다. 또한 EventEmitter 인스턴스를 ChangeStream으로 사용한 후 반복자(iterator)로 사용하여 그 반대의 작업을 수행할 수도 없습니다.

  • 다음 메서드는 더 이상 콜백 매개변수를 허용하지 않습니다.

    • Collection.find()

    • Collection.aggregate()

    • Db.aggregate()

  • maxPoolSize 연결 옵션의 기본값은 이제 100입니다.

  • 드라이버에서 더 이상 gssapiServiceName Kerberos 옵션을 지원하지 않습니다. 대신 authMechanismProperties.SERVICE_NAME를 사용하세요.

  • 드라이버는 더 이상 부울(boolean) 옵션에 대해 0 또는 1과 같이 부울이 아닌 유형을 허용하지 않습니다.

  • db.collection 유형은 이제 콜백을 허용하지 않습니다.

  • Db 유형은 더 이상 EventEmitter이(가) 아닙니다. MongoClient 인스턴스에서 직접 모든 이벤트를 수신할 수 있습니다.

  • 드라이버에서 Collection.group() 헬퍼에 대한 지원을 제거합니다.

  • 이 드라이버에는 더 이상 사용되지 않는 GridStore API가 포함되지 않습니다.

이러한 변경 사항에 대한 자세한 내용은 v4.0 변경로그를 참조하세요.

서버 출시 호환성 변경 사항은 MongoDB Server 버전 세트에 대한 지원을 중단하는 드라이버의 수정입니다.

드라이버는 MongoDB 서버 버전이 수명 종료(EOL) 시점에 도달하면 해당 버전에 대한 지원을 중단합니다.

EOL 제품에 대한 MongoDB 지원에 대해 자세히 알아보려면 레거시 지원 정책을 참조하세요.

  • v4.2 드라이버는 MongoDB Server v3.4 및 이전 버전에 대한 지원을 중단합니다. v4.2 드라이버를 사용하려면 MongoDB Server는 v3.6 및 이후 버전이어야 합니다. MongoDB Server 배포를 업그레이드하는 방법을 알아보려면 MongoDB Server 매뉴얼의 릴리스 노트를 참조합니다.

← 호환성