3

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

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

4

1 回答 1

3

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

我有一些集合,我想对该集合的每个插入执行操作。

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

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

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

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

我希望我有一个更好的答案给你。

于 2012-06-06T18:09:35.980 回答