使用 $isolated 在 MongoDB 中进行原子查找和删除?

Atomic find-and-delete in MongoDB using $isolated?

我正在使用 MongoDB 3.2,我想知道是否可以自动查找和删除大量文档(结果需要包含这些文档)。我试图确保一旦一个线程开始其进程,其他应用程序线程将永远不会读取这些文档。

据我所知,唯一可以使用的 MongoDB 运算符是 $isolated 但我不确定即使这样也能实现。

还有其他办法吗?如果没有,关于 $isolated 是否适用于此类用例的任何输入?

findOneAndDelete and findAndModify(和 remove: true)在文档级别上都是原子的。

$isolated 仅适用于写操作。它无助于确保其他应用程序线程永远不会读取

对于多文档事务,您需要在应用程序级别使用乐观锁来实现它。请参阅 2 phase commit 以获取灵感。