insert_many или insert_one не работают в MongoDB в PyMongo - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь использовать функцию insert_one или функцию insert_many для добавления документа в мою коллекцию в MongoDB, я продолжаю видеть ошибку ниже, я пытаюсь использовать подход словаря для того же, вот мой код, прикрепленный ниже вместе с Ошибка, может кто-нибудь, пожалуйста, пролить некоторый свет на то же самое, я новичок в MongoDB с Python Драйвером, соединение с БД работает нормально, так же как и в Списке коллекций, только функция insert_many (для моего случая достаточно insert_one, но тем не менее пытался оба) не удается, я пробовал также insert_one:

import pymongo
from pymongo import collection
from pymongo import MongoClient
import pprint
myclient = MongoClient("mongodb+srv://mongouser:mongouser@cluster0-31gzu.mongodb.net/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

1 Ответ

0 голосов
/ 17 апреля 2020

Спасибо, Мехта, у меня все заработало после репликации той же программы в Windows Box, который смог связаться с mongoDB через mon go Shell.

...