본문 바로가기

CS+/SQL

pymongo 입문하기 python, mongodb

이 포스팅은 인프런의 'NoSQL/DB(몽고DB) 기초와 파이썬 활용' 강의를 들으면서 정리한 내용입니다 :)


지난 시간까지 mongodb 만을 이용해서 CRUD 를 실습해보았습니다. 

이번에는 주피터 노트북 안에서 mongodb를 import 하여 CRUD 를 해보겠습니다. 

 

 

우선 pip install 을 이용해서 pymongo 를 설치 후 import 합니다. 

그리고 본인의 mongodb 에서 접속하면 됩니다. 

접속할 때, 주소는 따로 넣지 않는다면 mongodb 의 기본 포트인 27017 을 기준으로 localhost 에 접속합니다. 

 

 

 

별도의 connection 을 생성해주었다면 위 [3] 셀처럼 입력해주시면 됩니다. (위 주소는 예시입니다.) 

 

일단 이번 시간에는 기본 로컬 mongodb 로 접속하겠습니다. 

아래에서 knowledge 라는 db에 접속 후 인스턴스화 하였습니다. 

knowledge 이름의 db가 없을 경우 자동 생성됩니다. 

 

그 다음 knowledge 이름의 db 에 it 라는 이름의 컬렉션을 접속하고 인스턴스화 합니다.

여기서도 컬렉션이 없을 경우에는 자동으로 해당 이름의 컬렉션이 생성됩니다. 

 

 

 

 

자, 이제 CRUD 를 할 준비가 되었습니다. 

 

정리하자면 

 

1. pymongo 라이브러리 import
2. mongodb 접속 (주소)
3. 내가 사용할 database, collection 생성 또는 선택

 

까지 완료했습니다.

 

 

 

이제, 데이터를 insert 해보겠습니다.

insert_one 과 insert_many 의 차이는 이름 그대로 입니다. 

 

 

 

 

insert 작업이 수행되면 _id 라는 이름의 해시함수? 같은게 생성됩니다. 

(저런거 부르는 명칭이 따로 있던걸로 아는데 갑자기 생각이 안나네요 ㅠㅠ)

 

 

 

robo 에서 insert 됐다는 작업 행위에 대한 해시함수같은 번호가 그대로 적용됨을 확인할 수 있습니다. 

(약간 다를수도 있어요. 캡쳐를 순서대로 한 게 아니라서요! robo 에서 확인은 됩니다! ) 

 

카운트를 할 때는 

 

 count_document( {} ) 가 권장됩니다 :)  

 

 

read 는 find 로 하면 됩니다. 

mongo shell 에서 작업하던 것 처럼 {} 중괄호를 통해서 저건을 지정해주면 됩니다. 

특별히 설명드릴게 없네요 :) 

 

update 도 비슷한 양식입니다. 

 

 

 

핵심은 콤마를 중심으로 왼쪽에 중괄호로 덮는 게 기존 값 중에서 조건으로 검색하기

오른쪽에 중괄호로 덮는 부분이 변경해주는 조건 설정

 

 

이제, 삭제를 하겠습니다. 

 

 

 

삭제는 더 간단합니다. 원하는 조건만 넣어주면 끝입니다.

 

 

 

이제 db 를 하나 생성하고 컬렉션 만들어서 CRUD 작업을 하나씩 해보겠습니다 :) 

 

 

 

이번 포스팅에서는 각 메서드마다의 설명을 굳이 자세히 할 필요가 없다는 생각이 들어서 실습했던 코드를 보여주는 식으로만 작업을 했습니다.  저번, mongodb CRUD 작업을 해보았다면 쓰는 법에서는 큰 차이가 없다는 것을 느낄 수 있다고 생각하기 때문입니다. 약간의 차이는 위에서 실습을 통해 스스로 충분히 알 수 있을 거라고 생각합니다. 

 

 

이상 pymongo 에서 CRUD 실습을 해보았습니다 :)