Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在pymongo文档中监视更新的布尔值?_Python 3.x_Pymongo 3.x - Fatal编程技术网

Python 3.x 如何在pymongo文档中监视更新的布尔值?

Python 3.x 如何在pymongo文档中监视更新的布尔值?,python-3.x,pymongo-3.x,Python 3.x,Pymongo 3.x,我正在尝试使用pymongo 3.6.1侦听集合的更新 集合将更新为一个如下所示的文档: {"End_Word":"bit","Success":true,"Score":1,"Term_Index":5} 其中,如果任何文档中的键Success更新为true,则调用def dosomething() 文档显示了此示例,作为第一步: with db.collection.watch() as stream: for change in stream: print(cha

我正在尝试使用
pymongo 3.6.1
侦听集合的更新

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

{"End_Word":"bit","Success":true,"Score":1,"Term_Index":5}
其中,如果任何文档中的键
Success
更新为
true
,则调用
def dosomething()

文档显示了此示例,作为第一步:

with db.collection.watch() as stream:
    for change in stream:
        print(change)
在尝试复制此过程中,我遇到了一个
操作失败:无法识别的管道阶段名称:“$changeStream”
错误。当研究其他具有类似功能的时,答案是
连接驱动程序
版本。我认为情况并非如此:

代码:

更新: 我也看过这些地方

正确的方法是什么?

下面的错误

OperationFailure: Unrecognized pipeline stage name: '$changeStream'

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

问题可能出在此处的服务器版本,而不是pymongo驱动程序版本。您能检查一下服务器版本吗?所以MongoDB Atlas无法使用此操作?Mongo云服务上的服务器版本默认为3.4.14:(
Atlas支持使用以下MongoDB版本创建M10+付费层群集:MongoDB 3.2 MongoDB 3.4 MongoDB 3.6 M0免费层和M2/M5共享层群集仅支持MongoDB 3.4。
OperationFailure: Unrecognized pipeline stage name: '$changeStream'