因此,我是Pymongo和MongoDB的新手,我对如何最好地解决此问题感到困惑。我有两个收藏夹:
Raw_collection
Processed_collection
基本上,我将原始文档放入Raw_collection
中,然后通过基于过滤器等放置一些文档来处理它们,并将其余文档存储到Processed_collection
中。具体来说,我计划也定期更新Raw_collection
中的记录。
这样,在连续更新中仅将新插入的文档处理到Raw_collection
的最佳方法是什么?我调查了bulk methods,但不确定是否是我想要的...这似乎是一个简单的问题,但是由于我的经验不足,我不确定该怎么解决。非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
所以我最终通过pymongo的insert_many方法执行了以下操作:
import pandas
import pymongo
insert_raw_collection(): #call First
result = db[collection].insert_many(documents)
obj_id_list = result.inserted_ids
#[ObjectId('54f113fffba522406c9cc20e'), ObjectId('54f113fffba522406c9cc20f')]
return obj_id_list
insert_processed_collection(obj_id_list): # call Second
cursor = raw_collection_pandas_data_frame.find({"_id": {"$in": obid_list}})
for doc in cursor:
if filter(doc) == True
# do something
基本上,我从上一个插入步骤返回插入的ObjectId
的列表,并执行过滤操作,以便知道要保留的内容。