MongoDB 와 Robo3T
MongoDB, Robo3T
- mongodb는 화면에 보이지 않지만 가동되고있는 서버이다.
- 이런 MongoDb를 눈에보이고 제어하기 위한 툴이 Robo3T이다.
- MongoDB는 딕셔너리가 쌓이는 것이다.
NoSql - (Not only Sql)
- MongoDB는 NoSql의 종류 중 하니인데, Sql처럼 정형화 되어있지 않고, 딕셔너리 형태로 데이터를 저장해두는 DB를 NoSql이라 한다.
- Sql 보다 조금더 자유로운 형태이지만, 일관성이 부족할 수 있다는 단점이 있다.
Sql 과 NoSql의 차이.. NoSql이 조금 더 자유롭고, SQL은 정형화되어있는 데이터베이스
1. pymongo - MongoDB 와 Python 연동
- 파이썬에서 mongodb를 조작하기 위해선 pymongo 라이브러리를 이용할 수 있다.
pymongo 라이브러리 설치 후 기본골격은 아래와 같다.
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# insert
doc = {'name' : 'hm', 'age' : 25}
db.users.insert_one(doc)
- MongoClient : 몽고디비에 접속
- client.dbsparta : dbsparta 데이터베이스에 접속, (없으면 자동으로 생성된다)
2. MongoDB 구조 - (Database, Collection, Document)
Database
- 데이터베이스는 컬렉션의 물리적인 컨테이너이다. 제일 윗단의 개념이며 여러개의 컬렉션을 가지고 있다. (데이터의 집합체)
Collection
- 컬렉션은 Document의 그룹이며, RDBMS(sql) 의 테이블과 유사한 개념이다.
- 컬렉션 안의 document는 일반적으로 유사한 데이터를 모은다.
Document
- Document는 키(key) 와 값(value)로 이루어져 있는 동적 스키마이다.
- 딕셔너리 형태의 구조를 가진다.
3. MongoDB 데이터 조작 - [ insert, find, update, delete ]
# insert
doc = {'name' : 'hm', 'age' : 25}
db.users.insert_one(doc)
#find (모든 데이터)
same_ages = list(db.users.find({'age':21},{'_id':False}))
#find_one (한 개의 데이터)
user = db.users.find_one({'name':'bobby'})
#update - bobby 의 나이를 변경 ($set)
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
#update_many 해당되는 모든 데이터의 값을 변경
db.users.update_many({'name':'bobby'},{'$set':{'age':19}})
#delete
db.users.delete_one({'name':'bobby'})
'DataBase > MongoDB' 카테고리의 다른 글
[Flask] pymongo objectid 로 게시글 찾기 (0) | 2021.10.19 |
---|---|
[MongoDB] Pymongo Array 특정 요소(인덱스) 삭제하기 - $pull array (2) | 2021.10.18 |
MongoDB 설치하기 (0) | 2021.10.13 |
[MongoDB] 특정 값 증가 - Update 메소드와 $inc 제한자 ( 조회 수, 좋아요) (0) | 2021.10.09 |
MongoDB - Update 하는 방법 (update_one) (0) | 2021.10.09 |