insert_many或insert_one在PyMongo的MongoDB中不起作用

问题描述 投票:0回答:1

我正在尝试使用insert_one函数或insert_many函数将文档添加到MongoDB中的我的集合中,我不断看到以下错误,我正在尝试使用Dictionary方法进行同样的操作,这是我的代码,下面附有错误,任何人都可以对这个问题有所了解吗,我是Python驱动程序刚接触MongoDB的对象,数据库连接工作正常,收藏夹列表也是如此,仅insert_many函数(insert_one就我的情况而言就足够了,但是尽管两者都尝试了)失败,我也尝试了insert_one:

import pymongo
from pymongo import collection
from pymongo import MongoClient
import pprint
myclient = MongoClient("mongodb+srv://mongouser:[email protected]/NewDB?retryWrites=true&w=majority")
db = myclient.test_NewDB
print(db)
collection = db.test_collection
print(collection)
post = [{"Lodging": 50000,
        "AirTicket": 70000,
        "Conveyance": 30000,
        "AirportTransfer": 5000,
        "EmployeeID": 5162143}]
posts = db.posts
print(posts)
result = posts.insert_many(post)
result.inserted_ids
posts.find_one({"EmployeeID": 5161234})

下面是我遇到的错误:

[root@EU-HWS-LNX242 testhwa]# /usr/src/Python-3.6.8/python insertTest_MongoDB.py
Database(MongoClient(host=['cluster0-shard-00-00-31gzu.mongodb.net:27017', 'cluster0-shard-00-01-31gzu.mongodb.net:27017', 'cluster0-shard-00-02-31gzu.mongodb.net:27017'], document_class=dict, tz_aware=False, connect=True, retrywrites=True, w='majority', authsource='admin', replicaset='Cluster0-shard-0', ssl=True), 'test_NewDB')
Collection(Database(MongoClient(host=['cluster0-shard-00-00-31gzu.mongodb.net:27017', 'cluster0-shard-00-01-31gzu.mongodb.net:27017', 'cluster0-shard-00-02-31gzu.mongodb.net:27017'], document_class=dict, tz_aware=False, connect=True, retrywrites=True, w='majority', authsource='admin', replicaset='Cluster0-shard-0', ssl=True), 'test_NewDB'), 'test_collection')
Collection(Database(MongoClient(host=['cluster0-shard-00-00-31gzu.mongodb.net:27017', 'cluster0-shard-00-01-31gzu.mongodb.net:27017', 'cluster0-shard-00-02-31gzu.mongodb.net:27017'], document_class=dict, tz_aware=False, connect=True, retrywrites=True, w='majority', authsource='admin', replicaset='Cluster0-shard-0', ssl=True), 'test_NewDB'), 'posts')
Traceback (most recent call last):
  File "insertTest_MongoDB.py", line 17, in <module>
    result = posts.insert_many(post)
  File "/usr/local/lib/python3.6/site-packages/pymongo/collection.py", line 758, in insert_many
    blk.execute(write_concern, session=session)
  File "/usr/local/lib/python3.6/site-packages/pymongo/bulk.py", line 511, in execute
    return self.execute_command(generator, write_concern, session)
  File "/usr/local/lib/python3.6/site-packages/pymongo/bulk.py", line 344, in execute_command
    with client._tmp_session(session) as s:
  File "/usr/src/Python-3.6.8/Lib/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1823, in _tmp_session
    s = self._ensure_session(session)
  File "/usr/local/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1810, in _ensure_session
    return self.__start_session(True, causal_consistency=False)
  File "/usr/local/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1763, in __start_session
    server_session = self._get_server_session()
  File "/usr/local/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1796, in _get_server_session
    return self._topology.get_server_session()
  File "/usr/local/lib/python3.6/site-packages/pymongo/topology.py", line 490, in get_server_session
    None)
  File "/usr/local/lib/python3.6/site-packages/pymongo/topology.py", line 209, in _select_servers_loop
    self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: cluster0-shard-00-00-31gzu.mongodb.net:27017: timed out,cluster0-shard-00-01-31gzu.mongodb.net:27017: timed out,cluster0-shard-00-02-31gzu.mongodb.net:27017: timed out

关于,Sriram.V

python mongodb mongodb-query pymongo pymongo-3.x
1个回答
0
投票
感谢Mehta,将相同的程序复制到Windows Box后,它可以通过mongo Shell到达mongoDB,它可以正常工作。
© www.soinside.com 2019 - 2024. All rights reserved.