gpt4 book ai didi

MongoDB 存储过程不在 javascript 中

转载 作者:可可西里 更新时间:2023-11-01 09:37:33 24 4
gpt4 key购买 nike

我有一些集合,我想对该集合中的每个插入执行操作。问题是执行此操作的代码是用 Java 编写的。在 Oracle 中,可以将 Java 甚至 C 代码包装到 PL/SQL 过程中,然后在触发器中使用该过程。在 CouchDB 中,我们可以编写一个 View 。 MongoDB 最接近的模拟是什么?我能想到的最好的可能性是将我的代码包装到 REST 服务器中,然后使用存储的 javascript 与其交互。

我已经看过 this问题,但由于对 java 库的依赖,我不能在我的工作流程中只使用 javascript,如果有其他方法可以做到这一点,我也不想与 mongodb 一起运行新的繁重服务。

最佳答案

关于您的请求,有很多事情要说:

I have some collection and I want to perform action on every insert into that collection.

1) 您在这里要求的并不是真正的“存储过程”,而是真正的“数据库触发器”。 MongoDB 不提供任何类型的“数据库触发器”功能。

这与 MongoDB 的总体设计目标是一致的,即提供一个非常快速、可扩展的数据存储,而没有传统 DBMS 系统的沉重负担。有关 MongoDB 设计目标的更多详细信息,请参阅此演示文稿:http://www.10gen.com/presentations/mongosf2011/whymongodb

2) 如果您想对每次插入执行某些数据处理,则需要在 MongoDB 连接的客户端执行。这必然涉及在您的应用程序中编写一些代码。

3) 我建议您尽可能避免在 mongod 服务器中运行 JavaScript。 JavaScript 在服务器端进行解释,因此您的查询速度会受到影响。此外,在mongod服务器中运行的所有JavaScript都是单线程的,因此不存在任何JavaScript执行的并发。

我希望我能为您提供更好的答案。

关于MongoDB 存储过程不在 javascript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10900937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com