MongoDB 服务器上的 JavaScript 存储函数
Posted
技术标签:
【中文标题】MongoDB 服务器上的 JavaScript 存储函数【英文标题】:JavaScript Stored Function on MongoDB Server 【发布时间】:2013-06-10 15:23:24 【问题描述】:这与 mongodb 服务器中的 javascript 存储函数有关。我知道有关工作和用例的所有细节。我对 MongoDB 官方文档中的一行表示怀疑。
“注意:如果可能,我们不建议使用服务器端存储函数。”
事实上我的感受是,在迁移到 V8 JavaScript 引擎(改进 javascript 查询的并发问题)之后,考虑到这可以为我们节省很多网络往返时间,为什么 10gen 不推荐这样做?
【问题讨论】:
我认为最好的地方是直接使用 10gen。你试过联系他们吗? (也许通过他们的 Jira 错误数据库,以便可以跟踪问题)。虽然我可以说它在某些情况下可能是一个有用的功能,但我可以看到它很容易被滥用,并且 10gen 很难以可持续和注重性能的方式构建和支持。 @WiredPrairie:是的,我会这样做。首先我会尝试 mongodb-user google group。谢谢 10gen 有什么答案吗?我会很感兴趣的。 存储过程在 MongoDB 中运行非常缓慢。对于每个匹配的文档,他们必须运行他们声称很慢的 JavaScript 评估。您可以在 mongo shell 中直接运行一个简单的示例查询(一个普通查询,另一个使用一些 JavaScript)来验证这实际上很慢。 【参考方案1】:不建议这样做,因为 javascript 函数需要在执行期间获取写入锁定,这意味着您可能会导致写入性能出现瓶颈。
【讨论】:
您可以选择提供“nolock”选项,它只会获取读锁【参考方案2】:一般来说存储过程有一些缺点:
https://***.com/questions/462978/when-should-you-use-stored-procedures
但我理解你关于网络往返的观点。
【讨论】:
以上是关于MongoDB 服务器上的 JavaScript 存储函数的主要内容,如果未能解决你的问题,请参考以下文章
数据库Mean web开发 04-MongoDB在Linux上的安装及遇到的问题
Windows 10 上的 Mongodb 社区服务器:我可以通过普通 telnet 访问 MongoDB shell 命令解释器吗? (初学者)