아직 MonboDB 혹은 Robo-3t 설치가 안되어 있으면 먼저 아래 링크를 확인해서 설치해주세요.
사용에 앞서 pymongo를 먼저 설치해줍니다.
conda install pymongo
저는 Anaconda3를 이용하고 있으니 conda install 명령어를 이용하지만, conda를 사용하지 않는다면, pip install을 이용해서 설치해줍니다.
1. 간단한 insert 문을 작성해보았습니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017")
mydb = myclient["python"]
mycol = mydb["sample"]
mydict = { "col01" : "shane", "col02" : "28 Highway", "col03" : "123-456-789"}
x = mycol.insert_one(mydict)
print(x.inserted_id)
작성한 코드를 실행 한 뒤에, DB를 확인해보면 데이터가 잘 들어와있는 것을 알 수 있습니다.
일반적인 RDBMS 에만 익숙해진 상태에서 , 테이블 생성도 안하고 데이터를 다짜고짜 넣어보는건 처음이라 의심이 조금은 되었는데, 문제없이 잘 등록이 된 것을 확인할 수 있습니다.
2. 이번엔 더 간단한 select 문을 작성해보았습니다. w3schools 를 참고했습니다.
www.w3schools.com/python/python_mongodb_find.asp
find() 명령어에 아무 parameter도 주지 않으면, select *과 같은 결과를 준다고 써있습니다.
설마 하는 의구심을 품으며 그대로 코드를 따라해 보았습니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017")
mydb = myclient["python"]
mycol = mydb["sample"]
for x in mycol.find():
print(x)
실행해보니 find()를 활용해서 정말 간단하게 select * 과 같은 결과를 받아왔습니다.
이번에는 col01 값이 shane 인 데이터만 조회하려면 , find 안에 조건을 걸어주면 됩니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017")
mydb = myclient["python"]
mycol = mydb["sample"]
for x in mycol.find({'col01': "shane"}):
print(x)
원하는 데이터만 받아오는 것을 확인 할 수 있습니다.
3. 이번에는 update 문 입니다.
기존의 데이터는 아래와 같습니다.
아래의 코드를 입력하고 실행 해 보면,
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017")
mydb = myclient["python"]
mycol = mydb["sample"]
myquery = {"col01" : "john"}
newValue = {"$set": {"col02" : "Queenstown, NewZealand"}}
mycol.update_one(myquery, newValue)
for x in mycol.find():
print(x)
위와 같이 col01의 값이 john 인 row 의 col02 값을 Queenstown, NewZealand로 정상적으로 변경한 것을 확인 할 수 있습니다.
4. 마지막으로 delete 입니다.
위 insert, select, update를 하면서 패턴이 익숙해졌다면 너무 쉽게 할 수 있습니다.
한개를 삭제할때는 delete_one, 많은 rows를 삭제할떄는 delete_many 를 이용합니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017")
mydb = myclient["python"]
mycol = mydb["sample"]
myquery = {"col01" : "john"}
mycol.delete_one(myquery)
for x in mycol.find():
print(x)
실행해보니, col01이 john인 데이터가 삭제되어서 하나만 남은 데이터가 조회되는 것을 확인 할 수 있습니다.
NoSQL DBMS 는 처음 써봤는데 정말 간단하고 사용하기가 편해서 놀랐습니다.
'Programming > Python' 카테고리의 다른 글
pymongo로 MongoDB에서 크롤링한 데이터 불러와 pyplot으로 3D 그래프 그리기 (0) | 2021.03.22 |
---|---|
pymongo와 BeautifulSoup 이용해서 python에서 크롤링 하기 (0) | 2021.03.22 |
python 이용해 3차원 주식 그래프 그리기(2) (1) | 2021.03.19 |
python 이용해 3차원 주식 그래프 그리기 (0) | 2021.03.19 |
Python에서 Selenium 사용하기 및 Error: “chromedriver” cannot be opened because the developer cannot be verified. Unable to launch the chrome browser 에러코드 해결 (0) | 2021.03.18 |