如何在pymongo文档中查看更新的布尔值?

时间:2018-03-18 19:35:36

标签: python-3.x pymongo-3.x

我正在尝试使用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版本。我不认为这是这种情况:

enter image description here

代码:

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())

enter image description here

更新

我也在这些地方看了

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

什么是正确的方法?

1 个答案:

答案 0 :(得分:1)

以下错误

OperationFailure: Unrecognized pipeline stage name: '$changeStream'

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