服务器端 JavaScript
重要
服务器端 JavaScript 已弃用
从 MongoDB 8.0 开始,服务器端 JavaScript 函数($accumulator, $function, $where)已弃用。当你运行这些函数时,MongoDB 会记录一条警告信息。
Map-reduce 从 MongoDB 5.0 开始已弃用。
MongoDB 提供以下命令、方法和运算符,用于执行服务器端 JavaScript 代码
mapReduce和相应的mongosh方法db.collection.mapReduce()。更多信息,请参阅Map-Reduce。$where操作符,用于评估 JavaScript 表达式或函数以查询文档。$accumulator和$function聚合操作,允许用户定义自定义聚合表达式。
您还可以指定一个 JavaScript 文件在 mongosh 上运行。更多信息,请参阅在服务器上通过 mongosh 实例运行 .js 文件
注意
MongoDB 中的 JavaScript
尽管这些方法使用 JavaScript,但与 MongoDB 的大多数交互都不使用 JavaScript,而是使用交互应用程序语言的惯用驱动程序。
如果您不需要在服务器端执行 JavaScript 代码,请参阅禁用服务器端 JavaScript 执行。
注意
如果您正在使用 SELinux,任何需要 服务器端 JavaScript 的 MongoDB 操作都将导致段错误。 禁用服务器端 JavaScript 执行 描述了如何禁用服务器端 JavaScript 的执行。
在服务器上通过 mongosh 实例运行 .js 文件
您可以为 mongosh 指定一个 JavaScript (.js) 文件,以便在服务器上执行该文件。这是一种执行批量管理工作的好方法。当您在服务器上运行 mongosh 时,通过 localhost 接口连接,连接快速且延迟低。
禁用服务器端JavaScript执行
您可以通过禁用所有服务器端JavaScript执行来实现这一点
行为
并发
有关并发信息,请参考各个方法或操作符的文档。另请参阅并发表。
不支持数组和字符串函数
MongoDB 6.0 将用于 服务器端JavaScript、$accumulator、$function 和 $where 表达式的内部JavaScript引擎从 MozJS-60 升级到 MozJS-91。在 MozJS-60 中存在的几个已弃用、非标准的数组和字符串函数在 MozJS-91 中被移除。
有关移除的数组和字符串函数的完整列表,请参阅 6.0 兼容性说明。