我昨天开始使用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"]})
我很好这是从蒙戈CLI做,如果快。感谢您阅读本文,请不要让我难以忍受哈哈。
注意:''文件'出现两次在你的伪代码中,令人困惑。你可以重命名=>“doc_one”和“doc_two”吗? –