gpt4 book ai didi

database - 删除文档后如何从MongoDB changeStream获取fullDocument?

转载 作者:行者123 更新时间:2023-12-03 16:50:56 27 4
gpt4 key购买 nike

我的密码

我有一个带有两个集合的MongoDB,ItemsCalculations

Items
value: Number
date: Date
Calculations
calculation: Number
start_date: Date
end_date: Date
Calculation是基于数据库中所有 ItemItems值的存储的计算,这些值的日期介于 Calculation的开始日期和结束日期之间。

Mongo变化流

我认为创建/更新 Calculations的一种好方法是在 Items集合上创建一个Mongo Change Stream,该监听流监听对 Items集合的更改,然后重新计算相关的 Calculations

问题是根据 Mongo Change Event docs,当删除文档时,省略了 fullDocument字段,这将阻止我访问已删除的 Item的日期,该日期将通知应更新哪个 Calculations

问题

有什么方法可以访问由于文档删除而触发的Mongo更改事件的 fullDocument

最佳答案

不,我不相信有办法。从https://docs.mongodb.com/manual/changeStreams/#event-notification:

Change streams only notify on data changes that have persisted to a majority of data-bearing members in the replica set.



当文档被删除并且删除在副本集中的大多数节点上持久存在时,该文档就不再存在于副本集中。因此,changestream无法返回不再存在的内容。

您的问题的解决方案是 transactions in MongoDB 4.0。也就是说,您可以在单个原子操作中调整 Calculations并删除相应的 Items

关于database - 删除文档后如何从MongoDB changeStream获取fullDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56939610/

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