class="멋쟁이" 2022. 5. 31. 19:04

pymongo는 파이썬으로 MongoDB를 조작하는 라이브러리

 

만약 엑셀을 파이썬으로 조작하려면 남이 만들어놓은 라이브러리를 쓰는게 좋듯

남이  만들어 놓은 pymongo라는 라이브러리를 사용

 

크롤링과 마찬가지로 기본 코드를 깔고 해야함

1
2
3
4
5
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
 
# 코딩 시작
cs

 

INSERT / FIND / UPDATE / DELETE

1. insert : 데이터 넣는것

2. find : 찾는것ㅅ

3. update : update하는것

4. delete : 삭제하는것

# 저장 - 예시
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'})
cs

 

1.insert

1
2
3
4
5
6
7
8
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
 
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
cs

run하면 print도 없고 당연히 안나옴

근데 Robo3T 가서 mylocalbd를 refresh하면 생김

from pymongo import MongoClient 파이몬고를 쓰겠습니다

client = MongoClient('localhost', 27017) 내 컴퓨터에서 돌아가고 있는 몽고디비에 접속할겁니다

db = client.dbsparta 디비 스파르타라고 하는 디비에 접속하겠습니다(없으면 생김)

 

2-1. find (반복문을 넣어본 코드)(모든 document를 find하려면 {'age':21}을 빈 중괄호로 바꾸면 됌{})

무언가를 찾아서 same_ages라는 변수에 넣기

1
2
3
4
5
6
7
8
9
10
from pymongo import MongoClient
client = MongoClient('localhost'27017)
db = client.dbsparta
 
 
 
same_ages = list(db.users.find({'age':21},{'_id':False}))
 
for person in same_ages:
    print(person)
cs

 

{'-id':False}가 들어가는 이유는 아래 보여지는 불필요한 _id값이 다 나오기 때문에

2-2. find_one

 

 
user = db.users.find_one({'name':'bobby'})z
from pymongo import MongoClient
client = MongoClient('localhost'27017)
db = client.dbsparta
 
 
user = db.users.find_one({'name':'bobby'},{'_id':False})
print(user)
cs

 

3.update_one (update_many 도 있지만 위험해서 잘 안씀)

 
user = db.users.find_one({'name':'bobby'})z
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
 
 
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
 
cs

4.delete (마찬가지로 delete_many가 있지만 위험해서 잘 안씀)

 
user = db.users.find_one({'name':'bobby'})z
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
 
 
db.users.delete_one({'name':'bobby'})
 
cs