Docs Menu
Docs Home
/ / /
Node.js

새로운 기능

이 페이지의 내용

  • 5.6의 새로운 기능
  • 5.5의 새로운 기능
  • 5.4의 새로운 기능
  • 5.3의 새로운 기능
  • 5.2의 새로운 기능
  • 5.1의 새로운 기능
  • 5.0의 새로운 기능
  • 4.17의 새로운 기능
  • 4.16의 새로운 기능
  • 4.15의 새로운 기능
  • 4.14 버전의 새로운 기능
  • 4.13의 새로운 기능
  • 4.12의 새로운 기능
  • 4.11의 새로운 기능
  • 4.10 버전의 새로운 기능
  • 4.9의 새로운 기능
  • 4.8의 새로운 기능
  • 4.7의 새로운 기능
  • 4.6의 새로운 기능
  • 4.5의 새로운 기능
  • 4.4의 새로운 기능
  • 4.3의 새로운 기능
  • 4.2의 새로운 기능
  • 4.1의 새로운 기능
  • 4.0의 새로운 기능
  • 3.7의 새로운 기능
  • 3.6의 새로운 기능

다음 버전의 새로운 기능에 대해 알아보세요:

Node.js 드라이버 v5.6 릴리즈에는 다음 기능이 포함되어 있습니다.

  • 이제 드라이버가 Node.js v20을 지원합니다.

  • 운전자 는 runCursorCommand() 메서드를 호출할 때 서버 명령에 대한 응답으로 커서 를 반환할 수 있습니다. 이 기능 에 학습 보려면 runCursorCommand API 설명서를 참조하세요.

  • Time series 컬렉션 생성 옵션 bucketMaxSpanSecondsbucketRoundingSeconds를 지정할 수 있도록 지원합니다. Time serie 컬렉션 옵션에 대한 자세한 내용은 서버 매뉴얼의 Time Series 데이터용 세분 설정을 참조하세요.

이 릴리스를 자세히 알아보려면, v5.6.0 릴리스 하이라이트를 참조하세요.

5.5 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 이제 드라이버는 AWS 환경 변수가 AWS_Lambda_로 시작하는 경우에만 AWS 환경 변수를 고려함으로써 AWS의 FaaS(서비스형 기능) 환경을 정확하게 감지합니다.

  • Queryable Encryption 기능을 사용하여 암호화된 컬렉션을 생성하려면 mongodb-client-encryption을 버전 2.8.0 이상으로 업그레이드해야 합니다.

5.4 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

중요

사용 중단 안내

  • collStats 작업은 더 이상 사용되지 않습니다. 대신 $collStats 집계 연산자를 사용합니다.

  • db.command() 메서드에 전달된 TypeScript 인터페이스에 특정 옵션이 잘못 포함되어 있습니다. 이 옵션은 더 이상 사용하지 않습니다.

  • 이제 ChangeStream.tryNext 메서드는 Document 인터페이스 대신 스키마별 TChange 일반 유형을 사용합니다.

자세한 내용은 v5.4.0 릴리스 하이라이트에서 확인하세요.

5.3 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

중요

사용 중단 안내

  • 쿼리 및 애그리게이션 결과에 반복적으로 액세스 할 수 있는 forEach() 커서 메서드는 더 이상 사용되지 않습니다. 여기에 표시된 와 같이 for await...of 구문을 대신 사용합니다.

  • addUser() 메서드는 더 이상 사용되지 않습니다. 대신 createUser()를 사용하세요.

  • keepAlivekeepAliveInitialDelay 연결 옵션은 더 이상 사용되지 않습니다.

  • BulkWriteResult 클래스에서 중복된 기능을 포함하는 메서드는 더 이상 사용하지 않습니다. 더 이상 사용하지 않는 메서드 및 기본 대안의 전체 목록은 API 설명서를 참조하세요.

  • 이제 클라이언트 메타데이터에는 FaaS(Function as a Service) 환경 정보 및 대체 런타임 감지가 포함됩니다.

  • 이제 드라이버는 후행 점 점이 포함된 SRV 기록 주소를 허용합니다.

  • UpdateResult.upsertedId 업데이트된 문서가 없을 때 null을 반환합니다.

자세한 내용은 v5.3.0 릴리스 하이라이트에서 확인하세요.

5.2 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 이제 드라이버는 자동 Queryable Encryption 사용 시 자동으로 Azure 자격 증명을 획득하는 기능을 지원합니다.

자세한 내용은 v5.2.0 릴리스 하이라이트에서 확인하세요.

5.1 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 이제 드라이버는 BSON.Long에 대한 JavaScript bigint의 자동 직렬화를 지원합니다. 또한 useBigInt64 플래그가 true로 전달될 때 서버에서 반환된 BSON.Long 값을 bigint 값으로 역직렬화하는 기능도 지원합니다.

자세한 내용은 v5.1.0 릴리스 하이라이트에서 확인하세요.

중요

v5.0의 호환성이 손상되는 변경

  • Node.js 드라이버 버전 5.0은 Node.js v12 이하 버전과 호환되지 않습니다. If you want to use this version of the driver, You must use Node.js v14.20.1 or greater.

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

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

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

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

    이러한 전략에 대한 자세한 내용 은 MongoDB Node.js 드라이버 v 의 변경 사항을 참조하세요.5

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

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

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

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

이 버전에 도입된 호환성이 손상되는 변경의 전체 목록을 보려면 업그레이드 가이드의 호환성이 손상되는 변경 섹션 을 참조하세요.

5.0 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 기본적으로 드라이버는 StrictFilter 유형 주석이 명시적으로 사용되지 않는 한 점 표기법으로 참조된 유형을 더 이상 확인하지 않습니다. 이 변경 사항에 대해 자세히 알아보려면 타입스크립트(Typescript) 기본 사항 페이지를 참조하세요.

    참고

    이 변경 사항은 Typescript에만 적용되며 런타임 시 쿼리 또는 작업에는 영향을 주지 않습니다.

  • 피어 종속성으로 @aws-sdk/credential-providers를 선택적으로 설치합니다.

    • 드라이버는 더 이상 기본적으로 AWS SDK 모듈을 포함하지 않습니다. 다음의 npm 명령을 사용하여 SDK를 설치합니다.

      npm install --save "@aws-sdk/credential-providers@^3.201.0"

      SDK를 설치하면 설치한 SDK 버전이 드라이버와 호환되지 않는 경우 npm에서 알림을 보냅니다. 종속성을 성공적으로 설치하면 드라이버가 AWS SDK 자체를 사용하여 환경의 자격 증명을 관리합니다.

4.17 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다:

  • mongodb-js/saslprep 패키지를 드라이버 종속성으로 추가합니다.

  • Queryable Encryption 기능과의 호환성을 개선합니다.

자세한 내용은 v4.17.0 릴리스 하이라이트에서 확인하세요.

4.16 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다:

  • 드라이버 핸드셰이크 메타데이터에 FaaS(Function-as-a-Service) 플랫폼 정보를 포함합니다.

  • 클라이언트 메타데이터에서 Deno 런타임 사용량을 확인합니다.

자세한 내용은 v4.16.0 릴리스 하이라이트에서 확인하세요.

4.15 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 서비스 계정에 대한 AWS IAM 역할 지원.

자세한 내용은 v4.15.0 릴리스 하이라이트에서 확인하세요.

중요

v4.13에서 v4.14로 업그레이드하기

이 버전에는 v4.13에서 발생한 메모리 유출에 대한 수정 사항이 포함되어 있습니다. v4.14로 업그레이드할 것을 권장합니다.

4.14 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • v4.13에서는 메모리 누수를 수정했습니다.

  • 레거시 로거를 참조하는 메서드 및 옵션은 더 이상 사용되지 않습니다.

4.13 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 드라이버에 네트워크 시간 초과 오류가 발생하면 연결 풀에서 진행 중인 작업 자동 취소.

  • linearizableavailable 읽기 고려 설정과의 충돌을 방지하기 위해 암시적 세션에서 인과적 일관성을 비활성화했습니다.

  • 연결이 끊어질 때마다 드라이버가 MessageStream 인스턴스를 삭제하도록 하여 잠재적인 메모리 누수를 수정했습니다.

중요

드라이버를 버전 4.12.1로 업그레이드하기

4.12.1 Node.js 드라이버에는 프로세스 충돌을 일으킬 수 있는 모니터링 로직의 회귀에 대한 수정 사항이 포함되어 있습니다.

4.12 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • ChangeStream 클래스를 비동기 반복성으로 재정의했습니다. ChangeStream을(를) 기대하는 모든 컨텍스트에서 AsyncIterator 인스턴스를 사용할 수 있습니다.

    • 특히 이제 자바스크립트 for-await 루프에서 변경 스트림을 사용할 수 있습니다.

      const changeStream = myColl.watch();
      for await (const change of changeStream) {
      console.log("Received change: ", change);
      }
  • 드라이버가 이벤트 모니터링을 건너뛰는 경우 서버 모니터링이 수정되었습니다. 이 릴리스에서 드라이버는 모니터링 이벤트를 처리할 때 항상 토폴로지 보기를 업데이트합니다.

  • 드라이버 내부에서 사용되는 데이터 구조의 수정으로 인한 버퍼링 발생과 관련한 성능 향상.

자세한 내용은 v4.12.0 릴리스 하이라이트에서 확인하세요.

MongoDB Server 6.0 버전 이상에 연결할 때 드라이버는 서버 검색 및 모니터링 이벤트 중에 setVersion 설정보다 electionId 설정을 우선시합니다. 이전 버전에서는 우선순위가 뒤바뀌어 있었습니다.

선택적 aws-sdk/credential-providers 종속성을 설치하면 드라이버는 AWS SDK를 사용하여 환경에서 AWS 자격 증명을 검색합니다.

이 동작에 대해 자세히 알아보려면 인증 메커니즘 가이드의 MONGODB-AWS 섹션을 참조하세요.

이 릴리스에는 상호 재귀 컬렉션 스키마 형식에 대한 추가 지원이 포함되어 있습니다. 드라이버는 또한 이번 릴리스에서 최대 8단계까지의 점 표기법 쿼리에 대한 유형 안전성을 제공합니다. 8 단계 이상의 깊이에서 Typescript는 코드를 성공적으로 컴파일하지만 유형 안전성을 제공하지 않습니다. 재귀형에 대한 이러한 단계 제한은 현재 TypeScript의 제한 사항과 동일합니다.

다음과 같은 상호 재귀 유형을 포함하는 Collection<Author> 유형의 컬렉션이 있다고 가정합니다.

interface Author {
name: string;
bestBook: Book;
}
interface Book {
title: string;
author: Author;
}

TypeScript는 최대 8번째 깊이까지 유형 검사를 적용합니다. 다음 코드는 name 속성 값이 string 유형이어야 하기 때문에 TypeScript 컴파일 오류를 발생시킵니다.

myColl.findOne({ 'bestBook.author.bestBook.title': 25 });

8단계보다 크거나 같은 깊이에서 TypeScript는 코드를 컴파일하지만 더 이상 유형 검사를 수행하지 않습니다. 예를 들어, 다음 코드에서는 string 속성에 number를 할당하지만 참조된 속성의 단계가 10이므로 컴파일 오류가 발생하지는 않습니다.

myColl.findOne({
'bestBook.author.bestBook.author.bestBook.author.bestBook.author.bestBook.author.name': 25
});

자세한 내용은 v4.11.0 릴리스 하이라이트에서 확인하세요.

4.10 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 콜백 사용 중단

    • 콜백은 이제 더 이상 사용되지 않으며 프로미스로 대체됩니다. 콜백은 다음 주요 릴리스에서 제거될 예정입니다. 노드 드라이버 팀은 가능한 경우 프로미스로 마이그레이션할 것을 권장합니다.

      • async/await 구문을 사용합니다.

      • Node.js 콜백화 유틸리티를 사용합니다.

        require('util').callbackify(() => myColl.findOne())(callback)
      • then 구문을 사용합니다.

        myColl.findOne().then(res => callback(null, res), err => callback(err))
    • 대규모 코드베이스에서 Promises로 마이그레이션할 수 없는 경우 콜백 지원 옵션이 있는 Node.js 드라이버(레거시)를 사용할 수 있습니다.

자세한 내용은 v4.10.0 릴리스 주요 내용을 참조하세요.

4.9 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 유형 정의 내 writeConcern 옵션과의 불일치 문제 수정.

  • 자동 UUID 지원이 추가된 최신 BSON 릴리스가 포함되어 있습니다. 여기에서 BSON 릴리스 노트를 참조하세요.

자세한 내용은 v4.9.0 릴리스 주요 내용을 참조하세요.

중요

v4.8.0에서 v4.8.1로 업그레이드하기

버전 4.8.1은 버전 4.8.0에서 발생한 유형 회귀 문제를 수정합니다. v4.8.1로 업그레이드하면 $set 또는 $setOnInsert 연산자로 업데이트를 수행할 때 _id 값과 하위 문서를 지정할 수 있습니다.

4.8 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 업데이트 필터 내 중첩된 키에 대한 자동 완성 및 유형 안전성 기능이 추가되었습니다.

  • client.startSession() 이제 MongoDB에 연결하기 전에 호출할 수 있습니다.

  • estimatedDocumentCount() 메서드가 이제 댓글을 받을 수 있습니다.

자세한 내용은 v4.8.0 릴리스 주요 내용을 참조하세요.

4.7 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 이제 MongoClient.connect() 메서드는 MongoDB 인스턴스에 연결할 때 선택 사항입니다.

  • Zstandard 압축 알고리즘으로 메시지를 압축하는 기능

  • maxConnecting 연결 옵션에 대한 지원 추가

  • 변경 스트림 문서에 업데이트 전과 후의 문서를 표시하는 기능

  • 클러스터 간 복제와 관련된 새로운 변경 스트림 필드에 대한 지원이 추가되었습니다.

  • estimatedDocumentCount() 메서드에서 $count 데이터베이스 명령 사용

  • AWS Lambda Init 단계에서 MongoDB 연결 개선

중요

사용 중단 안내

ResumeOptions 인터페이스는 더 이상 사용하지 않습니다. 대신 ChangeStreamCursorOptions 인터페이스를 사용합니다.

4.6 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • TypeScript에서 ChangeStreamDocument을(를) 개선했습니다.

  • 서버 전체의 로드를 기준으로 서버 선택을 균등하게 분배합니다.

자세한 내용은 v4.6.0 릴리스 주요 내용을 참조하세요.

GitHub의 v4.5.0 릴리즈 하이라이트를 참조하세요.

4.4 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • CSFLE 사용 시 KMIP 제공자 지원.

  • CSFLE를 사용할 경우의 TLS 지원.

  • 호스트 이름 정규화는 GSSAPI 사용 시 "none", "forward", "forwardAndReverse"를 authMechanismProperties로 허용합니다.

  • 드라이버 4.0.0 릴리스에서는, 더 이상 사용되지 않는 collection.count() 메서드가 collection.countDocuments()처럼 동작하도록 의도치 않게 변경되었습니다. 이 릴리스에서는 collection.count() 메서드가 레거시 동작과 일치하도록 업데이트되었습니다.

    • 쿼리가 제공되면 collection.count()collection.countDocuments()와 동일하게 동작하여 컬렉션 스캔을 수행합니다.

    • 쿼리가 제공되지 않으면 collection.count()collection.estimatedDocumentCount()와 동일하게 작동하며 collection 메타데이터를 사용합니다.

    중요

    사용 중단 안내

    cursor.count() 메서드는 더 이상 사용되지 않으며 다음 주요 버전에서 collection.count()와 함께 제거될 예정입니다. 대신 collection.estimatedDocumentCount() 또는 collection.countDocuments() 메서드를 사용할 수 있습니다.

4.3 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

4.2 Node.js 드라이버 릴리스의 새로운 기능에는 다음 내용이 포함됩니다.

4.1 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 베타 서버리스 플랫폼을 포함한 모든 클러스터 유형에 대한 로드 밸런싱 연결 지원이 추가되었습니다.

  • ClientSession이(가) 클러스터 시간을 업데이트해야 하는지 여부를 결정하는 advanceClusterTime() 메서드에 대한 지원이 추가되었습니다.

중요

이 드라이버 릴리스에서는 더 이상 사용되지 않는 collection.count() 메서드가 의도치 않게 collection.countDocuments()처럼 동작하는 문제가 발생했습니다. 이 동작은 버전 4.4에서 수정되었습니다.

4.0 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • 드라이버를 TypeScript로 마이그레이션했습니다. 이제 이를 지원하는 편집기에서 유형 힌팅 및 인텔리센스 기능을 활용하여 MongoDB 애플리케이션을 개발할 수 있습니다. 순수 JavaScript 프로젝트에서도 이 작업의 이점을 누려보세요.

  • 이 버전에서 사용하는 기본 BSON 라이브러리는 이제 TypeScript로 마이그레이션됩니다.

  • 이제 인라인 문서의 서식이 통일되어 편집기의 표시가 개선됩니다.

  • 커뮤니티 유형 @types/mongodb의 사용자인 경우 코드베이스에서 해당 유형을 채택하는 데 문제가 있을 수 있습니다. TypeScript 내 코드베이스 작성 관련 세부 사항으로 인해 유형의 일대일 일치를 달성할 수 없습니다.

요청하고 싶은 TypeScript 관련 기능을 알려 주세요. 여기에서 JIRA 프로젝트에 대한 아이디어를 제출해 주세요.

Node.js 지원 최소 버전은 이제 드라이버 버전 4에 대해 v12.9 이상입니다. 3.x 분기에 대한 지원은 업그레이드할 수 있는 시간을 허용하기 위해 2022년 여름까지 계속됩니다.

참고

3.x는 Node.js v4까지 지원합니다.

이제 커서 구현이 업데이트되어 작업 실행 전후에 무엇이 가능한지 명확하게 알 수 있습니다.

예시

const fc = myColl.find({a: 2.3}).skip(1)
for await (const doc of fc) {
console.log(doc)
fc.limit(1) // incorrect usage, cursor already executing
}

커서 실행이 시작된 후 설정을 적용하면 커서에 오류가 발생하는 방식에 대한 불일치가 있었습니다. 이제 잘못된 상태에서 작업을 적용하려고 하면 커서에서 다음과 유사한 오류가 발생합니다.

MongoError: Cursor is already initialized

  • 영향을 받는 클래스:

    • AbstractCursor

    • FindCursor

    • AggregationCursor

    • ChangeStreamCursor (ChangeStream의 기본 커서입니다.)

    • ListCollectionsCursor

커서 유형이 더 이상 Readable을(를) 직접 확장하지 않습니다. 커서 유형은 cursor.stream()을(를) 호출하여 스트림으로 변환되어야 합니다.

예시

const cursor = myColl.find({});
const stream = cursor.stream();
stream.on("data", data => console.log);
stream.on("error", () => client.close());

수동 반복에는 hasNext()next()를 사용하세요. 비동기 반복에는 for await of 구문 또는 Promise 헬퍼를 사용합니다.

유형 힌트를 사용하면 MongoClient에 전달된 옵션이 열거되고 검색이 가능해집니다. 앱을 올바른 상태로 빠르게 시작하고 실행할 수 있도록 호환되지 않는 설정에 대한 조기 경고를 제공하기 위해 드라이버의 모든 옵션을 처리하고자 많은 노력을 기울였습니다.

  • checkServerIdentity 더 이상 기본 노드 API로 전달되기 전에 검사되지 않습니다. 이전에는 허용되는 값이 false 또는 함수였습니다. 이제는 인수가 함수여야 합니다. 부울(boolean)을 지정하면 오류가 발생합니다.

  • 더 이상 useUnifiedTopology 또는 useNewUrlParser을 지정할 필요가 없습니다.

이 메서드는 컬렉션이 존재하지 않는 경우 오류를 반환하는 strict 옵션을 더 이상 지원하지 않습니다. 컬렉션의 존재를 확인하려면 대신 listCollections() 메서드를 사용하세요.

예시

const collections = (await db.listCollections({}, { nameOnly: true })
.toArray()).map(
({name}) => name
);
if (!collections.includes(myNewCollectionName)) {
throw new Error(`${myNewCollectionName} doesn't exist`);
}

BulkWriteError 이제 이름이 MongoBulkWriteError(으)로 변경되었습니다.

쓰기를 수행하는 일괄 작업 실행 시 설정에 따라 오류가 발생할 수 있습니다. 일괄 작업의 오류를 테스트할 때 새 클래스 이름 MongoBulkWriteError를 가져옵니다.

DB 더 이상 EventEmitter가 아닙니다. MongoClient 인스턴스에서 직접 이벤트를 수신 대기합니다.

Collection.group() 도우미는 MongoDB 3.4 이후 더 이상 사용되지 않으며 이제 이 제거되었습니다. 대신 집계 파이프라인 $group 연산자를 사용합니다.

  • gssapiServiceName 이제 제거됩니다. authMechanismProperties.SERVICE_NAME 사용 URI에서 또는 의 MongoClientOptions 옵션으로.

    예시

    ?authMechanismProperties.SERVICE_NAME
    // or
    new MongoClient(url, { SERVICE_NAME: "alternateServiceName" })
  • 사용자 이름과 비밀번호를 옵션으로 지정하는 것은 URI 또는 MongoClientOptions의 옵션으로만 지원됩니다.

    예시

    new MongoClient("mongodb://username:password@<host><port>")
    // or
    new MongoClient(url, { auth: { username: "<>", password: "<>" } })

GridStore API(3.x에서 이미 사용 중단됨)가 이제 GridFSBucket으로 대체되었습니다. GridFS에 대한 자세한 내용은 mongodb 매뉴얼을 참조하세요.

다음은 동등한 작업을 나타내는 몇 가지 코드 조각입니다.

예시

// old way
const gs = new GridStore(db, filename, mode[, options])
// new way
const bucket = new GridFSBucket(client.db('test')[,options])

GridFSBucket은 Node.js 스트림 API를 사용합니다. startend 옵션을 사용하여 GridFSBucket에서 다운로드 스트림을 생성하고 파일 검색을 복제할 수 있습니다.

예시

bucket.openDownloadStreamByName(filename, { start: 0, end: 100 })

예시

await client.connect();
const filename = 'test.txt'; // whatever local file name you want
const db = client.db();
const bucket = new GridFSBucket(db);
fs.createReadStream(filename)
.pipe(bucket.openUploadStream(filename))
.on('error', console.error)
.on('finish', () => {
console.log('done writing to db!');
bucket
.find()
.toArray()
.then(files => {
console.log(files);
bucket
.openDownloadStreamByName(filename)
.pipe(fs.createWriteStream('downloaded_' + filename))
.on('error', console.error)
.on('finish', () => {
console.log('done downloading!');
client.close();
});
});
});

참고

GridFSBucket GridStore처럼 닫을 필요가 없습니다.

예시

// old way
GridStore.unlink(db, name, callback);
// new way
bucket.delete(file_id);

GridStore 인스턴스에서 액세스할 수 있던 파일 메타데이터는 버킷을 쿼리해 찾을 수 있습니다.

예시

const fileMetaDataList: GridFSFile[] = bucket.find({}).toArray();
  • 이제 mongod에 연결하면 내부적으로 unifiedTopology만이 관리됩니다. 이 버전과 이전 버전의 차이점은 여기에 자세히 설명되어 있습니다.

  • 더 이상 useUnifiedTopology 또는 useNewUrlParser을 지정할 필요가 없습니다.

  • 초기화되지 않은 복제본 세트 노드에 연결하려면 새 directConnection 옵션 을 사용해야 합니다.

이제 세분화된 상세 설명 모드가 지원됩니다. 각 모드에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

이제 instrument() 메서드가 제거되었습니다. 대신 명령 모니터링을 사용하세요. 자세한 내용은 명령어 모니터링에 대한 가이드를 참조하세요.

이 버전에 도입된 호환성이 손상되는 변경의 전체 목록을 보려면 업그레이드 가이드의 호환성이 손상되는 변경 섹션 을 참조하세요.

3.7 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • useUnifiedTopology 옵션을 활성화하는 동안 로드 밸런서 모드 지원이 추가되었습니다.

  • useUnifiedTopology 옵션을 활성화하는 동시에 Stable API 지원이 추가되었습니다.

3.6 Node.js 드라이버 릴리스의 새로운 기능은 다음과 같습니다.

  • AWS(Amazon Web Services) IAM(Identity and Access Management) 자격 증명을 사용하는 MONGODB-AWS 인증 메커니즘에 대한 지원이 추가되었습니다.

  • find() 메서드는 RAM에서 실행하는 데 너무 많은 메모리가 필요한 정렬에 대한 allowDiskUse()를 지원합니다

  • update() 및 replaceOne() 메서드는 인덱스 힌트를 지원합니다

  • 토폴로지 변경 및 페일오버(failover) 이벤트에 대한 복구 시간 단축

  • 기본값 writeConcern의 유효성 검사 테스트가 개선되었습니다.

  • 인증을 위한 서버 왕복 횟수가 줄어들어 연결 설정 속도가 빨라집니다.

  • 더 짧아진 (SCRAM)(Salted Challenge Response Authentication Mechanism) 통신

  • 여러 문서 트랜잭션에 대한 collection 및 인덱스를 만드는 기능

  • 백그라운드에서 컬렉션에 대한 유효성 검사 실행

돌아가기

빠른 참조