몽고DB는 nosql db다.
일반 sql은 규칙이 있지만 몽고DB는 그런 게 없다.
그냥 json형태의 데이터(딕셔너리)로 저장되어 있으므로
일반 sql보다 저장이 용이하지만, 규칙이 없는 만큼
사용자가 조심하지 않으면 데이터의 신빙성이 줄어든다.
ex: 키 name을 nane이라 치면 nane이라는 키가 생긴다.
파이썬의 경우 pymongo패키지를 다운받으면 된다.
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.디비 이름
이걸로 db에 접속할 준비는 다 된거다.
없는 db이름을 적으면 새로 생긴다.
db의 내용을 확인하고 싶으면 Robo 3T를 깔면 된다.
insert, find, update, delete
db에 데이터 저장
doc = {'name': 'red junpyo','age':60}
db.users.insert_one(doc)
여러 개를 저장하려면 for문을 돌리면 해결 될 일이다.
여기선 db.users를 썼지만, 다른 이름을 쓰면 콜렉션이 새로 생긴다.
db에서 데이터 한 개 찾기
user = db.users.find_one({'name':'red junpyo'})
print(user)
user에 json형태로 '_id'(고유 아이디), 'name', 'age'의 데이터가 넘어온다.
db에 있는 데이터 여러개 가져오기
same_ages = list(db.users.find({'age': 21},{'_id':False}))
same_ages 라는 리스트에 False가 되어있지 않는 매핑형 데이터들이 넘어온다.
{'_id':False, 'age':False} 이런 식으로 중괄호 안에 다 적어야 한다.
다 가져올 때는 find.({},{'_id':False}) 의 형태로 넣을 게 없어도 중괄호는 써줘야 한다.
db에 있는 데이터 수정
db.users.update_one({'name':'red junpyo'}, {'$set':{'age': 65}})
이러면 red junpyo의 age는 65로 바뀌지만 제일 먼저 나온 하나만 바뀐다.
db에 있는 데이터 삭제
db.users.delete_one({'name':'red junpyo'})
제일 먼저 나온 red junpyo가 하나 사라진다.
update나 delete로 써도 되지만, 예상치도 못한 데이터가 없어지거나 삭제되는 등
문제가 발생할 수 있기에 조심해서 써야 한다.
'데이터베이스' 카테고리의 다른 글
MySQL 문법정리 5. 내장 함수(수학, 시간 함수) (0) | 2022.04.19 |
---|---|
MySQL 문법정리 4. 변수, 내장 함수(조건문, 문자열 함수) (0) | 2022.04.18 |
MySQL 문법 정리 3. 명령어 종류(DCL, DML, DCL), INSERT, UPDATE, DELETE문 정리 (0) | 2022.04.17 |
MySQL 문법 정리 2. SELECT문 (GROUP BY, HAVING, 집계함수) (0) | 2022.04.16 |
MySQL 문법 정리 1. SELECT문 (where, 서브쿼리, order by, distinct 등) (0) | 2022.04.16 |
댓글