On this page
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-38
和mozjs
。
现代化的 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
属性作为解决方法。