服务器端 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 兼容性说明。