티스토리 뷰

python

[python] pymongo 활용 MongoDB CRUD

밀래 2020. 3. 9. 23:54
반응형

pymongo로 python에서 mongodb와 연동하는 방법을 정리합니다.

 

1. pymongo 설치

python에서 pymongo를 활용하여 몽고 DB에 있는 정보를 가져오거나 추가할 수 있습니다. 

pymongo를 아래 명령어로 설치하세요.

pip install pymongo

pip 명령어로 쉽게 설치가 가능합니다.

2. MongoDB 연결하기

import pymongo

conn = pymongo.MongoClient("mongodb://{id}:{password}@{server_ip}:{port}")
db = conn.get_database({db_name})
db.collection_names()

만약, 접속 계정이 특정 DB에 권한을 가지고 있다면 MongoClient 실행 시 DB 이름까지 추가해주세요.

conn = pymongo.MongoClient("mongodb://{id}:{password}@{server_ip}:{port}/{db_name}")

3. insert 하기

문서 1개 추가하기

# 바로 데이터 추가하기
db.test.insert_one({'x': 1})

results = db.test.find({})
for r in results:
    print (r)

문서 여러개 추가하기

results = db.test.insert_many([{'x': i} for i in range(2)])
for result in results.inserted_ids:
    print (result)

4. find 하기

문서 여러개 가져오기

items = db.test.find()
for item in items : 
    print (item)

문서 한개 가져오기

db.test.find_one()

5. delete 하기

문서 하나 삭제하기

result = db.test.delete_one({'x': 1})
result.deleted_count

문서 여러개 삭제하기

result = db.test.delete_many({'x':1})
result.deleted_count

6. update 하기

문서 하나 업데이트하기

# 업데이트 테스트용 데이터 추가
db.test.insert_one({'x': 5})

# 5를 찾아 3을 더하기
result = db.test.update_one({'x': 5}, {'$inc': {'x': 3}})
result.matched_count

db.test.find_one({'x': 8})

문서 여러개 업데이트하기

# 테스트 데이터 추가
db.test.insert_one({'x': 9})
db.test.insert_one({'x': 9})
db.test.insert_one({'x': 9})

# 9를 찾아 5를 더하기
result = db.test.update_many({'x': 9}, {'$inc': {'x': 5}})
result = db.test.find({'x': 14})
for r in result:
    print (r)

 

 

참고 사이트 

https://api.mongodb.com/python/current/api/pymongo/collection.html?highlight=insert_many#pymongo.collection.Collection.insert_many

반응형
댓글