본문 바로가기
웹 프로그래밍(풀스택-->python)

35. pymongo로 DB조작하기

by 백엔드개발자0107 2021. 4. 23.

파이썬으로 몽고db를  조작하기 위해서 남이 만들어놓은 pymongo라는 라이브러리를 이용할 것이다.

 

 

기본적으로 pymongo라이브러리를 사용하기 위해서는 기본 코드 템플릿을 이용해야 한다.

from pymongo import MongoClient
client = MongoClient("localhost", 27017)
db = client.dbsparta

그리고 pymongo라이브러리를 이용하기 위해서는

 

#insert/find/update/delete

 

등을 이용해서 pymongo의 mongoDB를 조작해볼것이다.

 

from pymongo import MongoClient

# pymongo를 쓰곘습니다.
client = MongoClient("localhost", 27017)
# 내 컴퓨터에서 돌아가고 있는 컴퓨터에 접근할겁니다.
db = client.dbsparta
# db스파르타라는 db이름으로 접근할겁니다.데이터 베이스의 이름은 client.dbsparta임
# 코딩시작

doc = {"name": "bobby", "age": 21}
db.users.insert_one(doc)

 

위의 해설을 보면서 이해하자!

 

 

자 앞서 맔했듯이 mongodb는 데이터를 쌓는거다. 그래서

doc = {"name": "john", "age": 27}
db.users.insert_one(doc)

이렇게만 해도 데이터가 싸인다.

 

자 이번에는 find() 구문을 이용해보자!

 

 

from pymongo import MongoClient
client = MongoClient("localhost", 27017)
# 내 컴퓨터에서 돌아가고 있는 컴퓨터에 접근할겁니다.
db = client.dbsparta
# db스파르타라는 db이름으로 접근할겁니다.데이터 베이스의 이름은 client.dbsparta임
# 코딩시작

same_ages = list(db.users.find({}, {"_id": False}))
# {"_id": False}는 id값을 나타내지 말라 라는 의미다
# 이떄 {"age": 21} 이 부분이 조건이다
# 조건없이 모두 나타내라 는 {}이런식으로 빈 괄호로 나타낸다.

for person in same_ages:
    print(person)

 

자 여기서 list는 for person in same_ages: 처럼 리스트화 시켜서 나타낼수 있다.

 

하나만 찾기는

user = db.users.find_one({"name": "bobby"})
# 이런식으로 하나만 나타낼수가 있다.

이런식으로 하나만 나타낼수가 있다.

마찬가지로 {"_id":False}를 이용해서 id값을 표현을 안할수가 있다.

 

자, 이번에는 update하는것을 공부해보자!

 

user = db.users.update_one({"name": "bobby"}, {"$set": {"age": 19}})

 

name:"bobby"라는 애를 찾아서 {"$set": {"age": 19}}) 로 바꿔라 !, 단 조건은 {name: "bobby"} 로 한다. 라는 표현방법이다.

자 이거는 거의 안쓰지만 db.users.update+many({"name":"bobby"},{$set:{"age":19}}) 로 표현하고 2개이상의 자료를 업데이트할때 이용한다.

 

db.users.update+many({"name":"bobby"},{$set:{"age":19}})

 

자 마지막으로 삭제하기에 대해서 공부해 볼것이다.

 

삭제하기도 거의 안쓰기는 하지만 공부는 해보자!

 

db.users.delete_one({"name": "bobby"})

이런식으로 하나를 삭제할때 사용한다.