맛동산

파이썬과 MongoDB 연동_2)파이썬에서 MongoDB 연결하기 본문

DB/MongoDB

파이썬과 MongoDB 연동_2)파이썬에서 MongoDB 연결하기

오지고지리고알파고포켓몬고 2016. 12. 2. 12:49

<1>

1. https://pypi.python.org/pypi/pymongo/#downloads 에 접속하면 파이썬과 MongoDB의 커넥터 모듈을 받을 수 있음.

파이썬 설치 버전(3.4), 파이썬 설치 비트(x64)가 일치하는 것을 받음.

목록에서 조건을 일치하는게 위 사진에 표시해둔것임.

작성 시점으로 pymongo-3.4.0이지만 이 이름은 버전업이 되면 언제든지 바뀔 수 있으니 크게 상관안해도 됨





<2>

2. pymongo-3.4.0-cp34-none-win_amd64.whl 파일이 다운받아지면 확장자를 pymongo-3.4.0-cp34-none-win_amd64.zip으로 바꿔서 압축을 품.(whl이 뭐지? wheel?)

압축을 풀면 bson, gridfs, pymongo, pymongo-3.4.0.clist-info 폴더, 총 4개의 폴더가 생성 됨.

생성된 폴더를 위의 사진처럼 python_path의 패키지 라이브러리 경로에 복사함 (난 C:\Python34\Lib\site-packages\)





 
'''
MongoDB 연동
'''
import pymongo
from pymongo import MongoClient #from이 있을경우 import뒤에있는건 함수 인데 db연동 모듈 추가역할을 합니다

# db 연동
conn = MongoClient('127.0.0.1')
# print(conn) # MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)

#db.collection.함수()

# db 생성
db = conn.test_db
# collection 생성
collect = db.collect # collect = conn.test_db.collect 쉽게말하면 이 db와 이 collect를 가지고있는거죠

#document 생성 : {'key':'value'}
doc1 = {'empno':'10001', 'name':'hong', 'phone':'010-111-111', 'age':35}
doc2 = {'empno':'10002', 'name':'lee', 'age':45}
doc3 = {'empno':'10003', 'name':'yoo', 'phone':'010-222-222', 'age':25}

del1 = {'empno':'10001'}
del2 = {'$set':{'name':'뭐여'}}
# collection에 문서 추가

collect.insert(doc1)
collect.insert(doc2)
collect.insert(doc3)


#문서 삭제 : db.collection.remove() -> collect.remove()
#collect.remove({'empno' : '10002'})

#문서 수정 : db.collection.update()
#collect.update( {'empno':'10001'}, {'$set':{'name':'kim'}}, True)#조건, 수정할거, 똑같은거 모두 수정할건지 true/false

# 전체 문서 조회
result = collect.find()

#print(result)
# 조회 문서 출력
for r in result :
    print(r)
    
    
# 조건 검색
print('조건 검색')
result2 = collect.find({ 'age':{'$gte':30} }) #크거나 같다
for r in result2 :
    print(r)

#컬렉션 제거
collect.drop()

<3>

3. 테스트


다른 DB 커넥터와 마찬가지로 모듈을 불러와서 DB통신을 처리함.


import pymongo

from pymongo import MongoClient


를 작성하면 MongoDB 커넥터 모듈을 사용할 수 있는데,

conn = MongoClient('127.0.0.1')

db = conn.test_db

collect = db.collect

부분이 연결을 담당하는 것이라고 생각하면 됨.


* conn.test_db에서 test_db는 오라클 기준으로 scott 사용자의 개념으로 생각하면 됨.

다른 DB에서 작업하고 싶다면 conn.test_db2 라는 식으로 사용하면 되는것.

* conn.test_db.collect에서 collect는 오라클 기준으로 테이블 개념으로 생각하면 됨.

다른 테이블에서 작업하고 싶다면 conn.test_db.user_table 같은 식으로 사용하면 되는 것.

(조만간 다시 정리하겠지만 MongoDB는 비정형 데이터베이스이기 때문에 create table과정이 따로 필요 없음.)


나머지는 간단한 예제 해본 것 들이고 문법에 대한건 따로 메모하지 않을 것 같음..


끝!




Comments