3-12 pymongo로 DB조작하기
Pymongo 설치
mongoDB 라는 프로그램을 조작하려면, 라이브러리인 pymongo가 필요합니다.
1. pycharm 프로그램을 실행시킨다.
2. file-setting 클릭
3. pymongo 검색후, install package 클릭!
DB 연결하기
dbprac.py라는 파일을 생성하고, 아래와 같이 기입한다.
from pymongo import MongoClient # pymongo 임포트
client = MongoClient('localhost', 27017) # mongoDB라는 27017 포트로 돌아갑니다.
db = client.dbsparta # 'dbsparta'라는 이름의 db로 접속합니다. (이름이 없으면 만듭니다.)
insert
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# insert 배우기
doc = {'name':'bobby','age':21}
db.users.insert_one(doc) #db 안에 users에 doc을 insert 해라
위와 같이 값을 입력하고, robo3T를 열어보자!
왼쪽에 dbsparta가 생긴 것을 알 수 있다!
collections는 비슷한 데이터끼리 묶어놓는 역할을 한다.
dbsparta - Colletions - users를 순서대로 들어가면 아래와 같이 값이 저장된 것을 볼 수 있다.
insert를 이용하여 아래와 같이 값을 저장하였다.
find
아래와 같이 코드 입력 후, 코드 실행!
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# find 배우기!
same_ages = list(db.users.find({'age':21}, {'_id':False}))
print(same_ages)
왜 bobby와 jane이 나왔을까요?
age가 21인 데이터를 찾은 것입니다.
'_id':False 의 조건은, _id의 값은 나타내지 말아라 라는 명령입니다.
for 문을 사용해볼까요?
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
#찾은 값을 이용하여, for문 사용하기
same_ages = list(db.users.find({'age':21}, {'_id':False}))
for person in same_ages :
print(same_ages)
결과는 아래와 같습니다.
전체 db의 데이터를 불러오려면?
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# db의 전체 데이터 불러오기
same_ages = list(db.users.find({}, {'_id':False}))
for person in same_ages :
print(same_ages)
아래와 같이 출력됩니다.
find_one
일치하는 하나만 가져옵니다. (일치하는게 여러개라면, 가장 위에 있는 데이터만 가져옵니다.)
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# find_one 배우기
user = db.users.find_one({'name':'bobby'})
print(user)
update_one
데이터를 찾아서, 값을 업데이트합니다.
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# update_one 배우기
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
#name이 bobby인 데이터를 찾아서 age를 19로 바꾸는 작업이다.
실행 후, robo3T을 들어가보면?
bobby가 21살에서 19살로 변경됨을 알 수 있습니다.
update_many
name이 bobby인 사람을 모두 찾아서 age를 19로 바꾸는 것이다.
하지만 이 방법은 자칫 실수를 불러올 수 있으므로, 위험합니다.
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# update_one 배우기
db.users.update_many({'name':'bobby'},{'$set':{'age':19}})
#name이 bobby인 데이터를 모두 찾아서 age를 19로 바꾸는 작업이다.
delete_one
이것 또한 자주 사용하지 않는 기능입니다.
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# update_one 배우기
db.users.delete_one({'name':'bobby'})
#name이 bobby인 데이터를 삭제합니다.
robo3T를 실행해보면 bobby 데이터가 사라짐을 알 수 있습니다.
delete_many
조건에 맞는 데이터를 모두 삭제하는 기능인데, 아주 위험하므로 사용하지 않습니다.
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# update_one 배우기
db.users.delete_many({'name':'bobby'})
#name이 bobby인 데이터 모두를 삭제합니다.
저장, 찾기, 변경, 삭제! 이 기능들을 어떻게 사용하는지 요약하자.
# 저장 - 예시 doc = {'name':'bobby','age':21} db.users.insert_one(doc) # 한 개 찾기 - 예시 user = db.users.find_one({'name':'bobby'}) # 여러개 찾기 - 예시 ( _id 값은 제외하고 출력) same_ages = list(db.users.find({'age':21},{'_id':False})) # 바꾸기 - 예시 db.users.update_one({'name':'bobby'},{'$set':{'age':19}}) # 지우기 - 예시 db.users.delete_one({'name':'bobby'})
'📝 꾸준함이 무기 > Python' 카테고리의 다른 글
파이썬 문법기초 (0) | 2021.06.01 |
---|---|
Flask 적용 (서버, 라우터) (0) | 2021.05.26 |
Flask 설치 (0) | 2021.05.26 |