DB 생성 및 연결하기
1. MongoDB Cloud 접속
https://cloud.mongodb.com/v2/640f30c4c52b8f51ee88a33d#/clusters
Cloud: MongoDB Cloud
account.mongodb.com
2. Database 탭에서 DB생성 후, Connect 버튼 -> Connect your application 클릭
3. sparta DB에 연결하는 url을 복사하고 url중 password 부분에 비밀번호 입력
4. 파이썬에서 sparta db에 접속하기
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@sparta.mjqohhf.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
파이썬 flask에서는 아래 예시 연산을 수행하기위해 제공하는 메소드를 사용하여 sql 쿼리문을 작성하지 않아도 됨
update_one(query, newvalues)
CRUD 하기
DB 현황 (예시)
dbsparta db에 저장되어 있는 데이터
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@sparta.mjqohhf.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
all_buckets = list(db.bucket.find({},{'_id':False}))
print(all_buckets)
#=>[{'_id': ObjectId('6426562eea6b18b1021f9d9f'), 'num': 1, 'bucket': '5성급 호텔에서 한달 살기!', 'done': 1}, {'_id': ObjectId('64265644ea6b18b1021f9da0'), 'num': 2, 'bucket': '100억 벌기', 'done': 1}, {'_id': ObjectId('64265653ea6b18b1021f9da1'), 'num': 3, 'bucket': '1년동안 세계 여행 ', 'done': 0}, {'_id': ObjectId('64265664ea6b18b1021f9da2'), 'num': 4,
#'bucket': '연봉 10억 받기', 'done': 0}, {'_id': ObjectId('642660cee8ab1dad25b7d455'), 'num': 5, 'bucket': '코드 마스터 되기', 'done': 0}, {'_id': ObjectId('6426629ee8ab1dad25b7d456'), 'num': 6, 'bucket': '행복한 가정 만들기', 'done': 0}]
1. Create
doc = {
'num':999,
'bucket' :"많이 웃기",
'done' : 0
}
#doc 데이터 삽입
db.bucket.insert_one(doc)
2. Read
# _id dict 내에 있는 전체 데이터 조회
all_buckets = list(db.bucket.find({}, {'_id':False}))
print(all_buckets)
#=> [{'num': 1, 'bucket': '5성급 호텔에서 한달 살기!', 'done': 1}, {'num': 2, 'bucket': '100억 벌기', 'done': 1}, {'num': 3, 'bucket': '1년동안 세계 여행 ', 'done': 0}, {'num': 4, 'bucket': '연봉 10억 받기', 'done': 0}, {'num': 5, 'bucket': '코드 마스터 되기', 'done': 0}, {'num': 6, 'bucket': '행복한 가정 만들기', 'done': 0}]
# _id dict 내에 있는 num 필드 첫번째 데이터 조회 -> _id dict 데이터 내 num, bucket, done 필드가 저장되어있어 num ==1인 데이터외에 나머지도 조회됨
all_buckets = list(db.bucket.find({'num':1}, {'_id':False}))
print(all_buckets)
#=> [{'num': 1, 'bucket': '5성급 호텔에서 한달 살기!', 'done': 1}]
# db에 저장된 첫번째 데이터만 조회
all_buckets = db.bucket.find_one({})
print(all_buckets)
#=> {'_id': ObjectId('6426562eea6b18b1021f9d9f'), 'num': 1, 'bucket': '5성급 호텔에서 한달 살기!', 'done': 1}
all_buckets = db.bucket.find_one({}, {'_id':False})
print(all_buckets)
#=> {'num': 1, 'bucket': '5성급 호텔에서 한달 살기!', 'done': 1}
print(all_buckets['num'])
#=> 1
# find_one에 조건 추가
all_buckets = db.bucket.find_one({'num':3}, {'_id':False})
print(all_buckets)
# => {'num': 3, 'bucket': '1년동안 세계 여행 ', 'done': 0}
3. Update
#num 999인 데이터의 bucket 값을 "깔깔대기" 로 수정
db.bucket.update_one({'num':999}, {'$set' : {'bucket':"큰소리로 웃기", "done" : 1004}})
#수정 전 : {'num': 999, 'bucket': '많이웃기', 'done': 0}
#수정 후 : {'num': 999, 'bucket': '큰소리로 웃기', 'done': 1004}
# 업데이트 예정
db.bucket.update_many()
4. Delete
#num 999 데이터 삭제하기
db.bucket.delete_one({'num':999})
https://prod.velog.io/@jhoon8903/day-26-Flask-mongodb-data-%EC%82%AD%EC%A0%9C
'DB' 카테고리의 다른 글
14. DB transaction과 ACID (0) | 2023.06.20 |
---|---|
3. SQL (MySQL 기준) (0) | 2023.06.18 |
2. 컴퓨터와 DB (1) | 2023.06.18 |
RDB 정규화와 예시 (0) | 2023.06.15 |
DataBase, 종류, MySQL Vs NoSQL (0) | 2023.03.21 |