【发布时间】:2020-12-30 00:18:55
【问题描述】:
首先,我与分片和集群以及副本集节点无关,... 我的用例是 mongo db 的单个实例,其中 1 个节点副本集仅用于启用事务
所以我开始了一个关注快照的事务。 Mongo 为我冻结了世界,并为我提供了一个世界的快照。 然后我找到(读取、查询)一些文档,并根据它们的结果更新一些其他文档。 我有权确保我第一次阅读的文件不会受到影响,如果我自己没有接触过它们并且我只是用它们来判断某事。所以虽然 mongo db 会检查文件是将在更新之前更新,看看是否没有其他人接触过它们,我还需要它来检查那些我只阅读但未更新的文档是否保持不变。
但它不会。它只检查将要更新的文档。
所以说我的域名设计得很糟糕,为了让某人减少某些东西,我首先检查这个人是否有权这样做。所以我开始一个交易,我检查这个人是否有权这样做,然后我允许他更新另一个文件并减少一些东西。但是在我提交我的交易之间和之前,其他一些交易,取消了第一个未提交的人的资格交易递减,第一笔交易愉快地进行,并在不知道他已被取消资格的情况下提交他的交易。
长话短说:我希望 mongo 锁定我已阅读的文档或检查我已阅读的文档是否保持不变
【问题讨论】:
标签: mongodb mongodb-query