wisePocket

[Python][Database] MongoDB CRUD SQL 연습 본문

Python&Flask Tutorials, AWS EB/3rd WEEK Python, Crawling, MongoDB

[Python][Database] MongoDB CRUD SQL 연습

ohnyong 2023. 7. 5. 18:41

파이썬에서 MongoDB를 사용하면서 CRUD기능의 SQL문을 사용하는 것을 실습해보았다.

전체 코드는 다음과 같다.

from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('mongodb+srv://ohnyong:test@cluster0.lu7mz8j.mongodb.net/?retryWrites=true&w=majority',tlsCAFile=ca)
db = client.dbsparta

# Dictionary 선언
# doc = {
#     'name':'영수',
#     'age':24
# }

# insert문
# db.users.insert_one(doc)


#------------ CRUD SQL --------------#
# INSERT_ONE
# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

# READ(FIND_ONE)
# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})

# READ(FIND)
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))

# UPDATE
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

# DELETE
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})

 

 

1. insert

# INSERT_ONE
# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

해당 코드가 실행되면 다음과 같이

name:bobby field와 age:21 field를 가진 document가

db.users에 insert된다.

 

2. Find (== Select ==Read)

# READ(FIND)
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({}))
for a in all_users:
    print(a)

다음처럼 _id가 자동으로 부여되는데 이것을 감추기 위해서는

'_id':False 를 추가하면 된다.

all_users = list(db.users.find({},{'_id':False}))
for a in all_users:
    print(a)

 

* 1개만 찾기 find_one

3. Update

update문을 통해 db의 field 등을 수정 할 수 있다.

# UPDATE
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

name이 bobby인 document의 age field value를 19로 변경한다.

== bobby의 나이를 19로 변경한다

실행하면 db에서 값이 변경 된 것을 확인 할 수 있다.

 

4. Delete

delete문을 사용해서 document를 삭제 할 수 있다.

# DELETE
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})

db에 4번째 document였던 bobby에 대한 데이터가 삭제되었다.

 

 

해당 내용으로는 MongoDB에 대한 이해가 어려울 수 있고 기능이 너무 적다고 생각 할 수 있어서

과거 실습과 수강 내용을 추가적으로 복습했다.

 

https://ohnyong.tistory.com/38

 

[Database] MongoDB CRUD 복기

MongoDB는 BSON으로 데이터가 쌓이기 때문에 Array 데이터나 Nested한 데이터를 쉽게 넣을 수 있는 특징이 있다. 우선 MongoDB의 DB계층구조 부터 Oracle과 비교해서 개념을 정리했다. db = 데이터베이스는

ohnyong.tistory.com

 


 

해당 스터디는 아래 깃을 통해 업데이트 되고 있습니다.

https://github.com/yzpocket/Sparta99training

 

GitHub - yzpocket/Sparta99training

Contribute to yzpocket/Sparta99training development by creating an account on GitHub.

github.com