Importante
JavaScript del lado del servidor está obsoleto
A partir de MongoDB 8.0, las funciones JavaScript del lado del servidor ($accumulator, $function, $where) están en desuso. MongoDB registra una advertencia cuando ejecuta estas funciones.
Map-reduce está deprecado a partir de MongoDB 5.0.
MongoDB proporciona los siguientes comandos, métodos y operador para la ejecución del código JavaScript del lado del servidor:
mapReducey elmongoshmétododb.collection.mapReduce()correspondiente. Para obtener más información, consulte Map-Reduce.$whereoperador que evalúa una expresión o función de JavaScript para realizar una query de documentos.Operaciones de agregación
$accumulatory$functionque permiten a los usuarios definir expresiones de agregación personalizadas.
También puede especificar un archivo JavaScript para mongosh ejecutar en el servidor. Para obtener más información, consulte .js Ejecución de archivos a través de una mongosh instancia en el servidor.
Nota
JavaScript en MongoDB
Aunque estos métodos utilizan JavaScript, la mayoría de las interacciones con MongoDB no utilizan JavaScript, sino un driver idiomático en el lenguaje de la aplicación que interactúa.
Si no necesita ejecutar código JavaScript en el servidor, consulte Desactivar ejecución en el servidor de JavaScript.
Nota
Si utiliza SELinux, cualquier operación de MongoDB que requiera JavaScript del lado del servidor provocará errores de segmentación. La sección "Deshabilitar la ejecución de JavaScript del lado del servidor" describe cómo deshabilitar la ejecución de JavaScript del lado del servidor.
Ejecutando archivos .js mediante una instancia mongosh en el servidor
Puedes especificar un.js archivo JavaScript mongosh () para ejecutarlo en el servidor (). Esta es una buena técnica para realizar tareas administrativas por lotes. Al ejecutar mongosh en el servidor, conectándote a través de la interfaz localhost, la conexión es rápida y con baja latencia.
Deshabilite la ejecución del lado del servidor de JavaScript
Puede desactivar toda la ejecución de JavaScript del lado del servidor:
Para una instancia de
mongodpasando la opción--noscriptingen la línea de comandos o configurandosecurity.javascriptEnabledcomo falso en el archivo de configuración.Para una instancia de
mongospasando la opción--noscriptingen la línea de comandos o configurandosecurity.javascriptEnabledcomo falso en el archivo de configuración.
Comportamiento
Simultaneidad
Consulta la documentación individual del método u operador para cualquier información sobre concurrencia. Consulte también la tabla de simultaneidad.
Funciones de string y arreglo no compatibles
MongoDB 6.0 actualiza el motor JavaScript interno utilizado para JavaScript del lado del servidor, $accumulator $functionexpresiones, y y de MozJS- $where a60 91MozJS-. Varias funciones de matriz y cadena obsoletas y no estándar que existían en MozJS-60 se eliminan en MozJS-.91