커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
mongodb atlas와 pymongo가 접속이 안됩니다.
undefined주차
북마크
강*온
댓글
3
추천
0
조회수
16
조회수
16
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


vscode에서 mongodb atlas쪽을 접속을 할려고하는데

pymongo.errors.OperationFailure: Unsupported OP_QUERY command: insert. The client driver may require an upgrade.

이와 같은 에러가 나왔습니다.



아래 코드처럼 vscode에서 python으로 mongodb atlas로 만든 클라우드db에 insert문을 날렸는데 오류 발생 발생 에러 : pymongo.errors.OperationFailure: Unsupported OP_QUERY command: insert. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removal from pymongo import MongoClient

1. driver를 업데이트 하라는부분에서 이해를 하지못해서 해당 링크로 접속되었다.

2. 해당서버에서는 버전이 달라지면서 사라진 문법이나 사용할수없는 문법을 보여줬늗데 전혀 관계가 없었다. // 일단 여기서 1차로 화남.....

3. 여기서 말하는 driver가 뭐인지 찾아보다 해당 컴퓨터의 업그레이드?를 해야한다고 해서 맥북 소프트웨어 업데이트확인

4. 최신버전이다.......진짜 여기서 2차화남

5. atlas사용법을 검색하여 처음부터 찾아봤는데 현재 사용법과 같고 문제가 없었다

6. 그외의 오류로 맥북에서 certifi설치에 관한 오류가 있을수있다는데 내가 발생한 오류와는 관계가 없었다.

7. MongoClient쪽 주소가 잘못되었는지 확인하고 주소를 받아오는곳에서 python의 버전별로 주소를 받아오고 다시 설치도 해보았다

8. 이것도 아님.... 전부다 문제가 없다.... 아여기서 진짜 .....

9. 그러다가 전에 mongoose를 하면서 설치한 gui프로그램으로 접속하여 연결하니 연결이됨???....왜인지는 아직모른다

10. 그래서 다시한번 python파일에서 insert문을 날리는 문제없이 작동되었다. 결론 : mongo에 관련된건 무조건 gui실행시킬것 저번에 mongoose일때도 docker에서도 gui프로그램을 실행하지않으니까 접속되지 않는 이슈가 있었다. 이부분에서는 정확한 이유는 모르나 예상으로는 사용하고있는 맥북환경에서 해당 프로그램이 실행이 안되니까 접속을 할 수 없었다고 유추는 되는데 그러면 altas는 클라우드인데 의미가있나??,... 이부분은 차후 알게되면 작성 


아래와 같은 과정후 다시 실행하는데 또안되서 다시삭제했는데 mongoose gui에서는 접속이 가능한데 python파일에서는 접속이 안됩니다...이부분을 어떻게 해결해야할까요

스파르타 즉문즉답




작성한 코드 및 에러 메세지

오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.import requests

from bs4 import BeautifulSoup


from pymongo import MongoClient

client = MongoClient('mongodb+srv://test:test@test.xffesm2.mongodb.net/?retryWrites=true&w=majority')

db = client.dbtest


URL = "https://movie.daum.net/ranking/reservation"

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}

data = requests.get(URL,headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')


lis = soup.select("#mainContent > div > div.box_ranking > ol > li")

for li in lis:

rank = li.select_one(".rank_num").text

title = li.select_one(".tit_item").text.strip("\n")

rate = li.select_one(".txt_grade").text

print(rank, title, rate)

doc = {

'title': title,

'rank': rank,

'rate': rate

}

db.movies.insert_one(doc);

Tip 2) Ctrl+A(맥의 경우 CommTraceback (most recent call last):

 File "hello.py", line 25, in <module>

  db.movies.insert_one(doc);

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/collection.py", line 680, in insert_one

  self._insert(document,

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/collection.py", line 596, in _insert

  return self._insert_one(

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/collection.py", line 577, in _insert_one

  result = self.__database.client._retryable_write(

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1099, in _retryable_write

  return self._retry_with_session(retryable, func, s, None)

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1076, in _retry_with_session

  return func(session, sock_info, retryable)

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/collection.py", line 568, in _insert_command

  return sock_info.command(

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/pool.py", line 490, in command

  return command(self.sock, dbname, spec, slave_ok,

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/network.py", line 123, in command

  helpers._check_command_response(

 File "/Users/daon/Desktop/voyage99/sparta/week03/venv/lib/python3.8/site-packages/pymongo/helpers.py", line 146, in _check_command_response

  raise OperationFailure(msg % errmsg, code, response)

pymongo.errors.OperationFailure: Unsupported OP_QUERY command: insert. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removaland+A) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴