중요
서버 측 JavaScript는 더 이상 사용되지 않습니다
MongoDB 8.0 부터 서버 측 JavaScript 함수($accumulator, $function, $where)는 더 이상 사용되지 않습니다. MongoDB 는 이러한 함수를 실행 때 경고를 기록합니다.
맵 리듀스는 MongoDB 5.0부터 더 이상 사용되지 않습니다.
MongoDB는 JavaScript 코드의 서버측 실행을 수행하는 다음 명령, 메서드 및 연산자를 제공합니다.
mapReduce및 해당 메서드. 자세한mongoshdb.collection.mapReduce()내용은 맵 리듀스를 참조하세요.$where문서를 쿼리하기 위해 JavaScript 표현식이나 함수를 평가하는 연산자입니다.사용자가 사용자 지정 집계 표현식을 정의할 수 있는
$accumulator및$function집계 작업입니다.
서버 에서 실행 JavaScript 파일 로 지정할 수도 mongosh 있습니다. 자세한 내용은 서버의 인스턴스를 통해 .js 파일 실행을 참조하세요.mongosh
참고
MongoDB의 자바스크립트
이러한 메서드는 JavaScript를 사용하지만, 대부분의 MongoDB와의 상호 작용은 JavaScript를 사용하지 않고 상호 작용하는 애플리케이션의 언어로 된 관용적 드라이버를 사용합니다.
JavaScript 코드의 서버 측 실행을 수행할 필요가 없는 경우 JavaScript 의 서버 측 실행 비활성화를 참조하세요.
참고
SELinux를 사용하는 경우 서버 측 자바스크립트가 필요한 MongoDB 작업을 수행하면 segfault 오류가 발생합니다. 서버측 JavaScript 실행 비활성화에서는 서버측 JavaScript 실행을 비활성화하는 방법을 설명합니다.
서버의 mongosh 인스턴스를 통해 .js 파일 실행
JavaScript ().js 파일 에 mongosh 지정하여 서버 에서 파일 실행할 수 있습니다. 이는 배치 관리 작업을 수행하는 데 유용한 기술입니다.mongosh 서버 에서 을(를) 실행 로컬 호스트 인터페이스를 통해 연결하면 지연 시간 짧고 연결이 빠릅니다.
JavaScript의 서버 측 실행 비활성화
JavaScript의 모든 서버 측 실행을 비활성화할 수 있습니다.
mongod인스턴스의 경우 명령줄에--noscripting옵션을 전달하거나 구성 파일에서security.javascriptEnabled를 false로 설정합니다.mongos인스턴스의 경우 명령줄에--noscripting옵션을 전달하거나 구성 파일에서security.javascriptEnabled를 false로 설정합니다.
행동
동시성
동시성 정보는 개별 메서드 또는 연산자 설명서를 참조하세요. 동시성 테이블도 참조합니다.
지원되지 않는 배열 및 문자열 함수
MongoDB 6.0 은 서버 측 JavaScript ,,, 표현식에 사용되는$accumulator 내부 JavaScript$function $where 엔진 MozJS- 에서60 MozJS-91 로 업그레이드합니다. MozJS- 에 존재했던 사용 중단된 몇 가지 비표준 배열 및 문자열 함수가60 MozJS-91 에서 제거되었습니다.