mongodb在关系数据库中是否具有触发器和过程等属性?

mongodb在关系数据库中是否具有触发器和过程等属性?,mongodb,triggers,procedure,Mongodb,Triggers,Procedure,正如标题所示,包括地图缩减框架 如果我想在插入记录之前触发事件以运行一致性检查或安全操作,如何使用MongoDB实现这一点?MongoDB不支持触发器,但人们已经围绕触发器创建了解决方案,主要使用oplog,尽管这仅在使用副本集运行时才有帮助,因为oplog是一个有上限的集合,它跟踪数据更改以进行复制。 有关nodejs解决方案,请参阅:或参阅早期的SO线程: 如果您关心一致性,请阅读mongoDB中的写关注。通过设置插入写入关注级别,您可以随心所欲地放松或严格,从fire和hope到获得副本集

正如标题所示,包括地图缩减框架
如果我想在插入记录之前触发事件以运行一致性检查或安全操作,如何使用MongoDB实现这一点?

MongoDB不支持触发器,但人们已经围绕触发器创建了解决方案,主要使用oplog,尽管这仅在使用副本集运行时才有帮助,因为oplog是一个有上限的集合,它跟踪数据更改以进行复制。 有关nodejs解决方案,请参阅:或参阅早期的SO线程:

如果您关心一致性,请阅读mongoDB中的写关注。通过设置插入写入关注级别,您可以随心所欲地放松或严格,从fire和hope到获得副本集所有成员的确认


因此,如果要在插入数据之前运行一致性检查,可能必须将该逻辑移动到客户端应用程序,并将写关注点级别设置为确保一致性的级别。

MongoDb没有触发器或存储过程。虽然有一些解决方案尝试模拟该行为,但由于它不是内置功能,您需要确定这些解决方案是否对您有效。搜索“触发器和mongodb”应该可以找到几十个。所有这些都依赖于oplog和副本

但是,考虑到MongoDb的性质和典型的三层体系结构,我希望在数据插入时(例如,可以在web服务器上),您可以在web服务器上运行必要的一致性和安全检查。不允许客户端(如移动应用程序)在不进行某些检查的情况下直接将数据设置到数据库集合中


MongoDb和扩展库的许多驱动程序已经内置了验证和一致性检查,因此所需的工作更少。对某些字段使用唯一索引还可以提供仅从驱动程序无法实现的一致性级别。看看那些进行原子更新的调用

我试图回答我认为是你的问题。如果您需要更多信息,请编辑您的问题。