从MongodDB获取丢失文档列表

2024-05-12 20:56:20 发布

您现在位置:Python中文网/ 问答频道 /正文

第一个mongodb项目,所以这可能是显而易见的,但我的googlefu是不够的,或者我走错路了

我在mongodb有一个收藏。每个文档都有一个唯一的id字段。在我的程序中,我最终得到了这些id的列表,如果mongodb中没有相应文档的副本,我想对api进行一个缓慢而昂贵的调用

显然,我不想在没有必要的情况下拨打昂贵的电话,因此解决方案似乎是我需要检索完整的列表并进行比较:

ids = [45, 23, 45, 88, 34, 28] # Except many more
items = db.items.find({'id': {'$in': ids}}, {'id':1})
missingIds = compareFx(ids, items)
for missingId in missingIds:
     doc = expensiveCall(missingId)
     db.items.insert_one(doc)

这要求我在查找不存在的文档时,对所有现有的/匹配的文档进行完全检索。有一个$exists操作符,但它似乎只对字段而不是文档进行操作,但也许我不知道如何使用它

是否有某种运算符/运算符组合来获取找不到的ID,或者这是正确/最好的方法


Tags: 项目in文档idids列表dbdoc