MongoDB查询返回错误结果

2024-04-24 13:07:26 发布

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

我有两台计算机与同一个MongoDB集合通信。我将给出一个简单的例子来说明它们的功能,我使用PyMongo作为CLI接口

计算机A: 每1s:

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\u processed”为真的文档放入“all\u docs”光标。我假设这与MongoDB复制过程有关?你知道吗

有没有更好的方法来处理这个问题?我能不能“强迫”电脑B得到收藏的“更新”版本?你知道吗


Tags: fromimportclientdocsdocismongodb计算机