Pymongo - Обрабатывать только недавно обновленные документы? - PullRequest
0 голосов
/ 22 января 2019

Так что я новичок в Pymongo & MongoDB, и я просто не понимаю, как лучше решить эту проблему. У меня есть две коллекции:

Raw_collection 
Processed_collection 

По сути, у меня есть необработанные документы, которые попадают в Raw_collection, после чего я обрабатываю их, отбрасывая некоторые документы на основе фильтров и т. Д., И сохраняю оставшиеся документы в Processed_collection. В частности, я планирую периодически обновлять записи и в Raw_collection.

Как таковой, каков будет лучший способ обработки только недавно вставленных документов до Raw_collection при последовательном обновлении? Я изучил массовые методы , но я не уверен, что это то, что я хочу ... это кажется простой задачей, которую нужно решить, но из-за моей неопытности я не уверен, какое решение будет быть. Любая помощь с благодарностью, спасибо!

1 Ответ

0 голосов
/ 06 февраля 2019

Итак, я сделал это с помощью insert_many метода pymongo:

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 из предыдущего шага вставки и выполняю операцию фильтрации, чтобы знать, что я хочу сохранить.

...