【发布时间】:2022-12-15 18:39:35
【问题描述】:
我正在尝试使用以下代码测试插入到 Mongodb Change 流中。只有这两行
client = pymongo.MongoClient(CONNECTION_STR)
print(client.changestream.collection.insert_one({"hello": "world"}).inserted_id)
运行此 python 文件时出现的错误如下,
Traceback (most recent call last):
File "D:\PyMongo Change Streams\test.py", line 7, in <module>
print(client.changestream.collection.insert_one({"hello": "world"}).inserted_id)
File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\collection.py", line 697, in insert_one
File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\contextlib.py", line 135, in __enter__
return next(self.gen)
File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1611, in _tmp_session
s = self._ensure_session(session)
File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1598, in _ensure_session
return self.__start_session(True, causal_consistency=False)
File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1551, in __start_session
server_session = self._get_server_session()
File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1584, in _get_server_session
return self._topology.get_server_session()
File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\topology.py", line 431, in get_server_session
self._select_servers_loop(
File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\topology.py", line 199, in _select_servers_loop
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats
我还使用以下代码测试了连接,它运行良好并打印出数据库信息。
# try:
# client = pymongo.MongoClient(CONNECTION_STR)
# db = client.API
# print(db)
# except Exception as e:
# print(e)
谁能帮我解释一下这个错误?
ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats
这是我第一次使用 MongoDB changestream。请帮我。先感谢您!
【问题讨论】: