如何在 pymongo 文档中观察更新的布尔值?

How to watch for an updated boolean value in a pymongo document?

我正在尝试使用 pymongo 3.6.1.

收听集合的更新

集合更新为如下所示的文档:

{"End_Word":"bit","Success":true,"Score":1,"Term_Index":5}

如果键 Success 更新为 true 在任何文档中 将调用 def dosomething()

mongodb api 文档显示了这个示例,作为第一步:

with db.collection.watch() as stream:
    for change in stream:
        print(change)

在尝试复制这个时,我遇到了 OperationFailure: Unrecognized pipeline stage name: '$changeStream' 错误。在研究具有相似 issues on stack 的其他人时,答案是 connection driver 版本。我不认为这里是这种情况:

代码:

db_name = 'mapstore'
coll_name = 'oxygen'

MONGO_DB_DRIVER = pymongo atlas M2 instance driver
conn = pymongo.MongoClient(MONGO_DB_DRIVER)
db = conn[db_name]
print(db.collection_names())

更新:

这些地方我也看了

How to listen for changes to a MongoDB collection? https://docs.mongodb.com/master/changeStreams/

什么是正确的方法?

下面的错误

OperationFailure: Unrecognized pipeline stage name: '$changeStream'

表示您的 Mongodb 服务器低于 3.6.0,这就是它无法识别此命令的原因。即使您有最新的客户端,也不会改变服务器的行为方式