【问题标题】:What is the JavaScript engine that runs mongoDB shell? [closed]运行 mongoDB shell 的 JavaScript 引擎是什么? [关闭]
【发布时间】:2026-02-08 12:05:02
【问题描述】:

是 V8 吗?似乎找不到此信息。

【问题讨论】:

标签: javascript mongodb


【解决方案1】:

截至v3.1.7,它是 SpiderMonkey - 在 MongoDB 3.2 release notes 上得到确认。

原因在compatibility notes上有说明:

此更改允许使用更现代的 JavaScript 语言功能,并伴随着小的 mongo shell 改进和兼容性更改

here 上还有一些说明。

最近的 MongoDB 版本 v3.3.5 收到了 update 到 SpiderMonkey 版本到 45.0.2 ESR。

从 V8 切换回 SpiderMonkey 的开发是在 v3.1.6 版本中进行的 - 请参阅 SERVER-18531,但在 v3.1.7 之前默认情况下不启用 SpiderMonkey - 请参阅 SERVER-19376

在 v3.1.6 之前,它是 V8 JavaScript 引擎,根据 release notes,它成为 v2.3.1 中的默认引擎,并且在 v2.4 release notes 中也突出显示。

SpiderMonkey 在 v2.5.1 中为 removed from the source

在此之前,它是一个扩展的 SpiderMonkey v1.7 shell,使用了一些非标准的 JavaScript 扩展,例如 ECMAScript for XML 扩展。

它似乎是更早的 V8,但在 April 2009 从 V8 迁移到 SpiderMonkey。根据this post,它看起来仍然是 v1.1.4 中的 SpiderMonkey for MongoDB,但我无法找到原始开关的时间。

【讨论】:

  • 我想知道他们为什么从 V8 转到 SpiderMonkey。
  • @AlexFord 我怀疑最初的原因是 V8 不支持 mongoDB 想要支持的所有扩展。现在都是 V8。
  • ...他们又回到了蜘蛛猴 (jira.mongodb.org/browse/SERVER-23358)。现在我真的很好奇这些开关的原因。 Jira 问题跟踪器中的某处可能有一些大讨论。
  • 为什么要从 V8 切换到 SpiderMonkey? detailed answer
【解决方案2】:

MongoDB 使用 SpiderMonkey,而不是 V8。

来源:http://www.mongodb.org/display/DOCS/mongo+-+The+Interactive+Shell

You can build MongoDB with V8 如果你愿意的话。

【讨论】: