Mongodb触发器函数调用是否有内置方式?

时间:2015-04-23 20:14:12

标签: mongodb triggers

我想使用MongoDB,例如它就像是带有单元格的电子表格的数据库版本:总和计算中涉及的数据组,或者从文档到下一个文档的运行总计的库存。 (当然,可以预期其他计算类型)

这意味着每次我们获得插入/编辑/删除 因此,需要对可能涉及进一步计算的事情进行重新计算,结果本身可能是另一次重新计算的触发器。

是否有内置的方法来测试插入/编辑/删除会调用重新计算方法? (如果结果对下一次重新计算有影响,可能会级联)

我想,这样的触发器会调用一个特定的函数,并为它提供:属性名称(插入/编辑/删除),集合,文档ID,操作类型以及可能的上一个和新值)

(属性和文档级触发器)

我想,另一种看待它的方法是有一个反复出现的函数,不断读取oplog文件并采取相应的行动。

谢谢, 马克

1 个答案:

答案 0 :(得分:0)

截至当前版本(3.0.2),MongoDB不支持触发器,更不用说级联触发器了。具有依赖于其他字段值的字段的文档也是您必须在应用程序层上实现的内容。

作为一个将几乎所有应用程序逻辑都留给应用程序的数据库,这样的功能并不属于其设计范围。

当你真的想在这个项目中使用MongoDB时(IMO似乎根本不是这个项目的合适工具),你必须自己实现所有这些。

你可以在应用程序上实现这个,但是当你有很长的字段依赖链时,这可能会变得很难看,因为你需要一个接一个地检索和保存每个文档。或者您可以尝试修改MongoDB本身以添加对此的支持。 MongoDB是开源的,所以你可以随心所欲地破解它。当您使用免费版本时,请记住阅读AGPL的许可条款,当您让其他人拥有的系统连接到您修改过的MongoDB时,这些条款是相关的。