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