Ale*_*ist 7 database mongodb changestream
我有一个包含两个集合的 MongoDB,Items以及Calculations.
Items
value: Number
date: Date
Run Code Online (Sandbox Code Playgroud)
Calculations
calculation: Number
start_date: Date
end_date: Date
Run Code Online (Sandbox Code Playgroud)
ACalculation是基于DB 中Item所有Items日期在Calculation的开始日期和结束日期之间的值的存储计算。
我认为创建/更新的一个好方法Calculations是在Items集合上创建一个 Mongo 更改流,它侦听对集合的更改Items,然后重新计算相关的Calculations.
问题是,根据Mongo Change Event 文档,当文档被删除时,该fullDocument字段被省略,这将阻止我访问删除Item的日期,这将通知哪些Calculations应该更新。
有什么方法可以访问fullDocument由于文档删除而触发的 Mongo Change 事件?
不,我不相信有办法。来自https://docs.mongodb.com/manual/changeStreams/#event-notification:
更改流仅通知已保留到副本集中的大多数数据承载成员的数据更改。
当文档被删除并且删除在副本集中的大多数节点上持久存在时,该文档已不再存在于副本集中。因此,变更流不能返回不再存在的东西。
您的问题的解决方案是MongoDB 4.0 中的事务。也就是说,您可以在单个原子操作中调整Calculations和删除相应的内容。Items
| 归档时间: |
|
| 查看次数: |
2881 次 |
| 最近记录: |