Docs Menu
Docs Home
/ / /
Node.js 드라이버
/ /

복합 작업

이 페이지의 내용

  • 개요
  • 내장 메서드

대부분의 데이터베이스 요청은 데이터베이스에서 데이터를 읽거나 데이터베이스에 데이터를 씁니다. 그러나 데이터를 읽고 쓰는 단일 작업이 필요한 인스턴스가 있을 수 있습니다.

복합 작업 은 읽기 및 쓰기 작업을 단일 원자성 문으로 결합하므로 읽기와 후속 쓰기 사이에 데이터가 변경될 가능성이 없습니다.

각 작업을 별도로 실행하면 다른 요청으로 인해 읽기 작업과 쓰기 작업 사이에 데이터가 변경될 수 있습니다. 이러한 데이터 변경으로 인해 작업이 성공하지 못할 수도 있지만 오류 처리가 더 어려워질 수 있습니다. 애플리케이션이 프로세스의 어느 단계에서든 잠재적인 오류를 처리할 때 부서지기 쉬워지고 테스트하기 어려울 수 있습니다.

Node.js 드라이버는 복합 작업을 수행하기 위해 다음과 같은 메서드를 제공합니다.

  • FindOneAndDelete()

  • FindOneAndUpdate()

  • FindOneAndReplace()

이러한 메서드는 구성 가능한 정렬프로젝션 옵션이 있는 선택적 options 객체 를 허용합니다.

includeResultMetadata 옵션을 설정하여 이러한 각 메서드의 반환 형식을 지정할 수도 있습니다. 이 옵션에 대한 자세한 내용은 본 가이드의 includeResultMetadata 옵션 섹션을 참조하세요.

findOneAndUpdate()findOneAndDelete() 메서드는 returnDocument 설정을 사용하여 메서드가 수정된 문서의 업데이트 전 버전을 반환할지, 업데이트 후 버전을 반환할지 여부를 지정합니다.

includeResultMetadata 옵션은 복합 메서드의 반환 유형을 결정합니다.

이 설정의 기본값은 false 이며, 이는 각 메서드가 일치하는 문서를 반환한다는 의미입니다. 일치하는 문서가 없으면 각 메서드는 null 을 반환합니다. includeResultMetadatatrue 로 설정하면 메서드는 발견된 문서와 메타데이터가 포함된 ModifyResult 유형을 반환합니다.

collection에 다음 문서만 포함되어 있다고 가정해 보겠습니다.

{ _id: 1, x: "on" }

다음 표는 includeResultMetadata 옵션 값이 findOneAndDelete() 메서드의 반환 유형을 어떻게 변경하는지 보여줍니다.

옵션 값
구문 및 출력
기본값입니다: false

문서 일치

await coll.findOneAndDelete({ x: "on" });
{ _id: 1, x: 'on' }

일치하는 문서가 없습니다.

await coll.findOneAndDelete({ x: "off" });
null
true
await coll.findOneAndDelete({ x: "on" }, { includeResultMetadata: true });
{ lastErrorObject: { n: 1 }, value: { _id: 1, x: 'on' }, ok: 1, ... }

돌아가기

쿼리 지정

이 페이지의 내용