MongoDB 3.2 中的 JavaScript 更改

在本页面

在 MongoDB 3.2 中,用于mongo shell 和mongod中服务器端 javascript 的 javascript 引擎已从 V8 更改为SpiderMonkey

要确认您使用的 JavaScript 引擎,可以在mongo shell 中使用interpreterVersion()方法,在db.serverBuildInfo()的输出中使用javascriptEngine字段

在 MongoDB 3.2 中,这将分别显示为MozJS-38mozjs

现代化的 JavaScript 实现(ES6)

SpiderMonkey 增强了对在第六版ECMAScript(缩写为 ES6)中定义的功能的支持。 ES6 添加了许多新的语言功能,包括:

对 mongo Shell 的更改

如果将 MongoDB 3.2 保存到集合中,则将完整返回 JavaScript 和 BSON undefined值。以前,mongo shell 将undefined值转换为null

MongoDB 3.2 还将disableJavaScriptJIT参数添加到mongod,这使您可以禁用 JavaScript 引擎的 JIT 加速。 mongoShell 具有相应的--disableJavaScriptJIT标志。

删除了非标准 V8 功能

SpiderMonkey 不允许使用 MongoDB 的早期版本支持的非标准Error.captureStackTrace()功能,这是“不允许”的。如果必须记录堆栈跟踪,则可以捕获Error().stack属性作为解决方法。

首页