【发布时间】:2016-08-18 05:58:23
【问题描述】:
我昨天开始使用 mongodb。我在同一个数据库中有两个集合,分别包含 1 亿和 3 亿个文档。如果在第二个集合的任何文档中都找不到文档中的值,我想删除一个集合中的文档。为了更清楚地说明这一点,我在下面提供了 python/mongodb 伪代码。我意识到这不是正确的语法,它只是为了展示我所追求的逻辑。我正在寻找最有效的方法,因为我的笔记本电脑上有很多记录和它:)
for doc_ONE in db.collection_ONE:
if doc_ONE["arbitrary"] not in [doc_TWO["arbitrary"] for doc_TWO in db.collection_TWO]:
db.collection_ONE.remove({"arbitrary": doc_ONE["arbitrary"]})
如果更快的话,我可以从 mongo cli 完成这项工作。感谢您阅读本文,请不要对我发火,哈哈。
【问题讨论】:
-
注意:
document在您的伪代码中出现两次,令人困惑。你能重命名 =>doc_one和doc_two吗?