我需要在给定时间内存储集合的副本,处理该副本(过程可能需要20-30分钟),然后删除副本。
副本本身应该是给定时间内集合的图像,因此需要忽略在此之后发生的任何动作。
因为MondbDb有2种方法可以做同样的事情,但做的却不同,这就是问题所在。
db.CloneCollection
将集合复制到新集合(我可以找到任何与锁相关的警告)
和
db.collection.copyTo
复制文档但会导致集合范围内的锁定(对我来说可能是个问题)。
问题是,在什么假设下我可以使用cloneCollection和CopyTo。
问题不仅与锁定有关。
我想询问建议,提示或任何想法,以便尽快获取数据而不会伤害使用该集合的工作人员。 (也可能是答案不包括cloneCollection
或copyTo
)。
这不是一场公开的辩论,在以下假设下几乎只有一个决定性的答案: