Docs Menu
Docs Home
/ / /
Node.js
/ /

복합 작업

이 페이지의 내용

  • 개요
  • 내장 메서드

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

복합 작업은 읽기 및 쓰기 작업을 단일 원자성 문으로 결합하므로 읽기와 후속 쓰기 사이에 데이터가 변경될 가능성이 없습니다. 실제로 클라이언트 애플리케이션의 관점에서는 두 작업 모두 동일한 코드 줄에서 수행됩니다.

이 속성은 특정 문서에 쓰고 싶지만 아직 문서를 찾지 못한 경우에 유용할 수 있습니다. 문서의 _id 에 대해 읽기를 수행한 다음 방금 찾은 문서를 변경하려고 하면 읽기 작업과 쓰기 작업 사이에 다른 사람이 문서를 변경할 수 있습니다. 그렇다고 해서 이 작업을 중단할 수는 없지만 오류 처리가 훨씬 더 어려워질 수 있습니다. 복합 연산은 추상화 계층 뒤 데이터베이스 내에서 해당 로직을 완전히 처리하므로 로직을 간단하게 유지할 수 있으므로 걱정할 필요가 없습니다. 별도의 읽기 및 쓰기를 사용하여 이 작업을 수행할 수 있지만 이 경우 클라이언트 애플리케이션이 프로세스의 모든 단계에서 다양한 잠재적 오류 상태에서 잠재적 오류를 정상적으로 처리해야 합니다. 이로 인해 코드가 복잡해지고 클라이언트 애플리케이션이 부서지기 쉽고 테스트하기 어려울 수 있습니다.

세 가지 주요 복합 작업이 있습니다.

  • findOneAndDelete() 여러 문서를 제공된 쿼리와 일치시키고 일치하는 문서 중 첫 번째 문서를 제거합니다.

  • findOneAndUpdate() 여러 문서를 제공된 쿼리와 일치시키고 제공된 업데이트 문서를 사용하여 일치하는 문서 중 첫 번째 문서를 업데이트합니다.

  • findOneAndReplace() 여러 문서를 제공된 쿼리와 일치시키고 제공된 대체 문서를 사용하여 일치하는 문서 중 첫 번째 문서를 대체합니다.

세 가지 메서드 모두 읽기 작업과 동일하게 작동하는 구성 가능한 정렬프로젝션 옵션이 있는 선택적 options 객체 를 허용합니다. findOneAndUpdate()findOneAndDelete() 를 사용하면 클라이언트 가 returnDocument 옵션을 구성할 수 있으며, 이 옵션은 메서드가 수정된 문서 의 업데이트 전 버전 또는 업데이트 후 버전을 반환하는지 여부를 결정하는 부울입니다.

돌아가기

쿼리 지정

이 페이지의 내용