DataBase/MongoDB

MongoDB란, - (MongDB 시작하기, Robo3T로 조작하기, 몽고디비 조작 CRUD)

민돌v 2021. 9. 18. 15:48

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'})