AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.

서버측 JavaScript

중요

맵 리듀스는 MongoDB 5.0부터 더 이상 사용되지 않습니다.

MongoDB는 JavaScript 코드의 서버측 실행을 수행하는 다음 연산자를 제공합니다.

  • $where 문서를 쿼리하기 위해 JavaScript 표현식이나 함수를 평가하는 연산자입니다.

  • 사용자가 사용자 지정 집계 표현식을 정의할 수 있는 $accumulator 및 $function 집계 작업입니다.

JavaScript(.js) 파일을 mongosh 에 지정하여 서버에서 파일을 실행할 수 있습니다. 이는 일괄 관리 작업을 수행하는 데 유용한 기술입니다. 서버에서 mongosh 를 실행하고 로컬 호스트 인터페이스를 통해 연결하면 지연 시간이 짧고 연결이 빠릅니다.

mongod 또는 mongos에 대한 모든 서버 측 JavaScript 실행을 비활성화하려면 다음 중 하나를 수행할 수 있습니다.

서버 측 메서드는 JavaScript를 사용하지만, 대부분의 MongoDB와의 상호 작용은 JavaScript를 사용하지 않고 상호 작용하는 애플리케이션의 언어로 된 관용적 드라이버를 사용합니다.

동시성 정보는 개별 메서드 또는 연산자 설명서를 참조하세요. 동시성 테이블도 참조합니다.

MongoDB 6.0 은 서버 측 JavaScript, $accumulator, $function 및 $where 표현식에 사용되는 내부 JavaScript 엔진 을 MozJS-60 에서 MozJS-91 로 업그레이드합니다. MozJS-60 에 존재했던 사용 중단된 몇 가지 비표준 배열 및 string 함수가 MozJS-91에서 제거되었습니다.

MongoDB 9.0부터는 ppc64le 아키텍처에서 서버 측 JavaScript를 사용할 수 없습니다. ppc64le 용 mongod 및 mongos 바이너리에는 JavaScript 엔진이 포함되어 있지 않습니다. 그 결과 $where, $accumulator, $function 및 맵 리듀스 작업이 해당 아키텍처에서 실패합니다. 설정 파일 설정이나 명령줄 옵션을 사용하여 ppc64le에서 서버 측 JavaScript를 활성화할 수 없습니다.

이러한 작업을 실행하려면 JavaScript 엔진이 포함된 아키텍처의 배포서버를 사용하세요. 서버 측 JavaScript가 필요 없는 집계 파이프라인 단계 및 연산자를 사용하도록 작업을 다시 작성할 수도 있습니다.

MongoDB 9.0부터 서버 측 JavaScript는 mongod 호스팅하다 시간 구역와 관계없이 UTC로 로컬 Date 작업을 평가합니다. Date.prototype.getHours(), 로컬 생성자 및 세터, 날짜를 string으로 변환하는 작업은 모두 UTC를 사용합니다. 저장 BSON 날짜 값은 Date.prototype.getTime(), Date.prototype.toISOString() 및 getUTC*() 메서드와 마찬가지로 변경되지 않습니다.

지정된 시간대의 날짜를 평가하려면 $hour와 같은 집계 날짜 연산자를 명시적 timezone 인수와 함께 사용하세요. JavaScript에서 로컬 Date 메서드를 사용하지 마세요. 업그레이드 지침은 MongoDB 9.0의 호환성 변경 사항을 참조하세요.

SELinux를 사용하는 경우 서버 측 JavaScript가 필요한 MongoDB 작업을 수행하면 segfault 오류가 발생합니다. 서버 측 JavaScript 실행을 비활성화하려면 서버 측 JavaScript 비활성화를 참조하세요.