Overview
MongoDB 提供以下命令、方法和运算符,可在服务器端执行 JavaScript 代码:
mapReduce和相应的mongosh方法db.collection.mapReduce()。有关详细信息,请参阅 Map-Reduce。$where运算符,用于计算 JavaScript 表达式或函数以查询文档。$accumulator和$function聚合操作,允许用户定义自定义聚合表达式。
您还可以为mongosh指定要在服务器上运行的JavaScript文件。 有关更多信息,请参阅通过mongosh实例在服务器上运行.js文件
注意
MongoDB 中的 JavaScript
尽管这些方法使用 JavaScript,但与 MongoDB 进行的大多数交互并不使用 JavaScript,而是使用采用交互应用程序语言的惯用驱动程序。
如果您不需要在服务器端执行 JavaScript 代码,请参阅禁用服务器端执行 JavaScript。
注意
如果您使用 SELinux,任何需要服务器端 JavaScript 的MongoDB 操作都会导致 segfault 错误。 禁用 JavaScript 的服务器端执行描述了如何禁用服务器端 JavaScript 的执行。
通过.js mongosh实例在服务器上运行 文件
您可以为mongosh指定 JavaScript ( .js ) 文件,以在服务器上执行该文件。 这是执行批处理管理工作的好方法。 当您在服务器上运行mongosh并通过本地主机接口进行连接时,连接速度快且延迟低。
并发
有关任何并发信息,请参阅每种方法或运算符文档。另请参阅并发表格。
禁用在服务器端执行 JavaScript
您可以禁用 JavaScript 的所有服务器端执行功能:
对于
mongod实例,方法是在命令行中传递--noscripting选项或在配置文件中将security.javascriptEnabled设置为 false。对于
mongos实例,方法是在命令行中传递--noscripting选项或在配置文件中将security.javascriptEnabled设置为 false。