Server-side JavaScript

在本页面

Overview

MongoDB 提供以下命令,方法和运算符,它们在服务器端执行 JavaScript 代码:

  • mapReduce和相应的mongo shell 方法db.collection.mapReduce()mapReduce操作值 Map 或关联到键,对于具有多个值的键,将每个键的值减少到单个对象。有关更多信息,请参见Map-Reduce

  • $where运算符,用于评估 JavaScript 表达式或函数以查询文档。

您也可以在mongo shell 中指定一个 JavaScript 文件以在服务器上运行。有关更多信息,请参见通过服务器上的 mongo shell 实例运行.js 文件

JavaScript in MongoDB

尽管这些方法使用 JavaScript,但是与 MongoDB 的大多数交互都不使用 JavaScript,而是使用交互应用程序语言中的idiomatic driver

您还可以禁用服务器端的 JavaScript 执行。有关详细信息,请参见禁用 JavaScript 的服务器端执行

Note

如果使用 SELinux,则任何需要server-side JavaScript的 MongoDB 操作都将导致 segfault 错误。 禁用 JavaScript 的服务器端执行描述了如何禁用服务器端 JavaScript 的执行。

通过服务器上的 mongo shell 实例运行.js 文件

您可以为mongo shell 实例指定一个 JavaScript(.js)文件,以在服务器上执行该文件。这是执行批 Management 工作的好技术。当您在服务器上运行mongo shell 并通过 localhost 接口进行连接时,连接速度快且延迟低。

Concurrency

有关任何并发信息,请参阅各个方法或操作员文档。另请参见concurrency table

禁用 JavaScript 的服务器端执行

您可以通过在命令行中传递--noscripting选项或在配置文件中设置security.javascriptEnabled来禁用所有服务器端 JavaScript 的执行。