7. 봉드로이드_개발공부

mongoDB 사용하는 방법(데이터 저장, 찾기, 변경하기, 지우기 등)

마켓플레이어, 마케터 봉 2024. 10. 8. 19:39

자, 이제 준비는 다 되었다.

 

이제 python 패키지를 설치만 하면 진짜 준비가 끝나간다.

pymongo
dnspython

위 2개의 패키지를 설치하자.

 

아래와 같이 작성하면 db에 접속이 가능하다.

[pymongo 기본 코드]

from pymongo import MongoClient
import certifi

ca = certifi.where()
client = MongoClient("mongodb+srv://bongdroid:password@cluster0.hecgbmx.mongodb.net/Cluster0?retryWrites=true&w=majority", tlsCAFile = ca)

db = client.bongdroid

중간에 client = MongoClient("여기에 url 입력하면 된다") 이 부분은 아래 이미지의 체크한 부분이다.

그냥 위 [pymongo 기본코드]를 복붙해서, username, password 부분만 수정하자. < > 이건 지우면 되는데, 혹시나 해서 예시로 한번 넣어봤다. (물론 저 id/pw는 실제가 아니다)

 

원래 certifi는 import 안해도 되는데, 간혹 안될 때가 있다. 그래서 난 그냥 같이 복붙한다.

 

이제 간단하게 테스트를 해보자. 아래 스크립트를 넣고 실행해보자.

doc = {
    'name':'bong',
    'age': 37
}

db.users.insert_one(doc)

 

그러면 아래와 같이 db가 들어가 있는 걸 발견할 수 있을 것이다.(검은 박스로 칠한 건 개인 프로젝트로 사용하던거라, 비공개하기 위해 가렸다)

보면, 기본 코드에 있는 [db = client.bongdroid]는 프로젝트의 구분을 의미한다. 하나의 폴더다.

그리고 db를 넣을 때, [db.users.insert_one(doc)]에서의 users는 데이터의 구분을 의미한다.

즉, [bongdroid]폴더 안에 [users]라는 폴더가 형성되어, 그 안에 ['name':'bong', 'age':37]인 데이터가 딕셔너리 구조로 들어가 있는 것이다.

다른 말로는 저 부분은 마음대로 바꿔가면서 데이터 관리를 할 수 있다는 것이다.

 

참고로 db를 확인하는 것은 아래 이미지처럼 [database]안에 [browse collections] 버튼을 누르면 된다.

 

자, 이제 몽고db에 데이터를 넣는 것을 해봤다.

기본적인 코드는 아래 5개가 주로 사용된다.

# 저장 > 딕셔너리 구조
doc = {'name':'bong','age':37}
db.users.insert_one(doc)

# 1개 찾기 > bong이란 이름을 가진 사람의 정보 찾기
user = db.users.find_one({'name':'bong'})

# 여러개 찾기 ( _id 값은 제외하고 출력) > 여러 데이터를 뽑아내기에 list로 출력
all_users = list(db.users.find({},{'_id':False}))

# 변경하기 > bong이란 이름을 가진 사람의 나이를 35로 수정.
db.users.update_one({'name':'bong'},{'$set':{'age':35}})

# 지우기 > bong이란 이름을 가진 사람의 데이터 삭제
db.users.delete_one({'name':'bong'})

 

id값은 mongDB에서 자동 생성되는 구분자이다. 같은 이름을 가진 사람이 회원가입했을 때, id로 a라는 사람과 b라는 사람을 구분하는 것이다. 그런데 보통 회원가입 할 때 사용하는 id와는 별도로 구분되어야 하기에 _id라고 쓴것 같다(순전히 뇌피셜임)

 

아무튼 난 기본적으로 안보이게 하는 걸 선호해서(중복이 안되는 무작위 난수에 가까워서 그냥 '_id':False를 써놓는다.