我有两台与同一MongoDB集合通信的计算机。我将举例说明他们的工作,我使用PyMongo作为CLI界面
电脑A: 每1:
from bson import ObjectId
from pymongo import MongoClient
# Create payload
client = MongoClient(mongo_html)
collection_post = client["MyCollection"].posts
pay_load = {
"number": 10,
"is_processed": False
}
collection_post.insert_one(pay_load)
电脑B: 每隔10秒:
from bson import ObjectId
from pymongo import MongoClient
# Create payload
client = MongoClient(mongo_html)
collection_post = client["MyCollection"].posts
all_docs = collection_post.find({"is_processed": False})
for doc in all_docs:
do_work(doc)
collection_post.update({"_id": ObjectID(doc["_id"])}, {"is_processed", True})
但我面临的问题是,在计算机B中,我有时会将“is_processed”True的文档转换为“all_docs”游标。我假设这与MongoDB复制过程有关吗?
有没有更好的方法来解决这个问题?我可以以某种方式“强迫”计算机B获得该集合的“更新”版本吗?