Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

JavaScript del lado del servidor

Importante

Map-reduce está deprecado a partir de MongoDB 5.0.

MongoDB proporciona los siguientes operadores que realizan la ejecución del código JavaScript en el servidor:

  • $where operador que evalúa una expresión o función de JavaScript para realizar una query de documentos.

  • Operaciones de agregación $accumulator y $function que permiten a los usuarios definir expresiones de agregación personalizadas.

Puede especificar un archivo de JavaScript (.js) para mongosh para ejecutar el archivo en el servidor. Esta es una buena técnica para realizar trabajo administrativo agrupado. Cuando ejecute mongosh en el servidor, conectándose a través de la interfaz localhost, la conexión es rápida y de baja latencia.

Para deshabilitar toda la ejecución de JavaScript del lado del servidor para mongod o mongos, puede hacer lo siguiente:

Aunque los métodos del lado del servidor utilizan JavaScript, la mayoría de las interacciones con MongoDB no utilizan JavaScript, sino que emplean un controlador idiomático en el lenguaje de la aplicación que interactúa con ella.

Consulta la documentación individual del método u operador para cualquier información sobre concurrencia. Consulte también la tabla de simultaneidad.

MongoDB 6.0 actualiza el motor interno de JavaScript utilizado para JavaScript del lado del servidor, $accumulator, $function y $where expresiones y de MozJS-60 a MozJS-91. Varias funciones de arreglos y string obsoletas y no estándar que existían en MozJS-60 se eliminaron en MozJS-91.

A partir de MongoDB 9.0, JavaScript del lado del servidor no está disponible en la arquitectura ppc64le. Los binarios mongod y mongos para ppc64le no incluyen un motor JavaScript. Como resultado, $where, $accumulator, $function y las operaciones map-reduce fallan en esa arquitectura. No se puede habilitar JavaScript del lado del servidor en ppc64le mediante un archivo de configuración ni una opción de línea de comandos.

Para ejecutar estas operaciones, utilice una implementación en una arquitectura que incluya un motor JavaScript. También puede reescribir las operaciones para usar etapas y operadores de canalización de agregación que no requieran JavaScript del lado del servidor.

A partir de MongoDB 9.0, JavaScript del lado del servidor evalúa las operaciones locales Date en UTC, independientemente de la zona horaria del host mongod. Los métodos getter locales como Date.prototype.getHours(), los constructores y setters locales, y las operaciones que convierten una fecha a una cadena, utilizan UTC. El valor de fecha BSON almacenado no cambia, al igual que Date.prototype.getTime(), Date.prototype.toISOString() y los métodos getUTC*().

Para evaluar fechas en una zona horaria específica, utilice un operador de agregación de fechas como $hour con un argumento timezone explícito. Evite los métodos Date locales en JavaScript. Para obtener orientación sobre la actualización,consulte Cambios de compatibilidad en MongoDB 9.0.

Si utiliza SELinux, cualquier operación de MongoDB que requiera JavaScript del lado del servidor provocará un error de segmentación. Para deshabilitar la ejecución de JavaScript del lado del servidor, consulte Deshabilitar JavaScript del lado del servidor.