mongoDB 바로 다뤄보기
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
3. mongoDB 바로 다뤄보기¶
- mongodb의 데이터 구성
- db, collection으로 구성
- 데이터는 각 collection에 document 형식(python dictionary)으로 저장 됨
- collection들의 논리적인 집합이 database
3.1. Robomongo 설치 (MongoDB 관리 GUI 툴) (실습)¶
- https://robomongo.org/download
- 맥에서 처음 실행시 잘 안되면, 삭제 후, 다시 다운로드받아서 재설치하세요
- 실행
- Click Create
- In Connection
- Name: AWS EC2 IP
- Address: AWS EC2 IP (port는 27017 디폴트)
- In Authentication
- Database 이름: admin
- User Name: 사용자 ID
- Password: 사용자 암호
- Click Test & Save button to check connection
- In Connection
- Connection
- Click Coonect buttion
- Check connection
- Right-click (server name) -> Show Log
- Create DB
- Right-click (Server) -> Create Database -> Add dave_db
- Create Collection
- Right-click (Collections(0) in created DB) -> Create Collection -> Add test
- Insert Document
- Right-click (test collection) -> Insert Document -> Add the following JSON(BSON) Document -> Click Validate & Save buttons
- Click View Documents in test collection
- Check id in indexes of test collection (인덱스 자동 생성)
- Click Create
{ "name" : "Dave Lee", "age" : 22, "major" : "CS" } { "name" : "David Oh", "age" : 24, "major" : "Japanense" }
- Insert Document (different JSON fields) & Click View Documents in test collection
{
"name" : "이종수",
"age" : 54,
"minor" : "CS",
"nickname" : "wink"
}
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
3.2. Robomongo에서 커멘드 입력해보기 (실습)¶
Right-click (Server) -> Open Shell
show dbs - 전체 데이터베이스 열람
use [DB 이름] - 데이터베이스 선택 (없으면 데이터베이스 생성)
- 예) use dave_db - dave_db 데이터베이스 선택
show collections - 선택된 데이터베이스의 콜렉션 열람
db.[Collection 이름].함수() 로 해당 컬렉션의 데이터 열람 및 조작
- 예) db.test.find() - test 컬렉션에서 전체 Document 검색
- 데이터베이스 생성
- use dave_db
- 데이터베이스 현황 확인
- db
- db.stats()
- 데이터베이스 삭제 및 생성
- db.dropDatabase() (현재 컬렉션 삭제)
- use dave_db
- collection 생성 및 삭제
- db.createCollection("employees", {capped:true, size:10000})
- Right-click (server) -> Click Refresh -> Go to dave_db -> Go to Collections -> Check employees
- capped:true 최초 제한된 크기로 생성된 공간에서만 데이터를 저장하는 설정 (고성능, 저장공간차면 기존 공간 재사용, 일정시간만 저장하는 로그에 적합)
- db.employees.isCapped()
- db.employees.drop()
- db.createCollection("employees")
- db.employees.isCapped()
- db.employees.drop()
- db.createCollection("employees", {capped:true, size:10000})
- db.createCollection("employees", {capped:true, size:10000})
- collection 확인
- show collections
- db.employees.stats()
- collection 이름 변경
- db.employees.renameCollection("emp")
- collection 삭제
- db.emp.drop()
3.3. SQL과 간단 비교 - mongodb collection 생성/변경¶
- collection 생성 (원하는 타임으로 데이터를 바로 넣으면 됨)
- PRIMARY KEY를 위한 별도 컬럼 만들 필요 없음.
- mongodb는 collection에서 _id가 각 Document마다 자동생성되어 primary key 역햘을 함
- 컬럼마다 데이터 타입을 정할 필요 없음 ("컬럼명": 컬럼값 이 기본 형태임)
- collection 구조 변경 (기존 Document에 컬럼 추가/삭제 필요없을 시는 새로운 Document에만 필요한 컬럼을 추가 또는 삭제해서 넣으면됨)
- ALTER TABLE은 기본적으로 collection에서는 필요 없음
- 일부 기존 Document에도 컬럼과 컬럼값을 넣거나 삭제해야 한다면 다음과 같은 형태로는 가능함
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
가장 빠르게 풀스택 개발자가 될 수 있도록, 최적화된 로드맵을 제공합니다
- 기존 Document에도 컬럼과 컬럼값 추가시
- SQL: ALTER TABLE people ADD COLUMN join_date DATETIME
- mongodb: db.people.updateMany({ }, { $set: { join_date: new Date() } })
- 기존 Document에도 컬럼과 컬럼값 삭제시
- SQL: ALTER TABLE people DROP COLUMN join_date
- mongodb: db.people.updateMany({ }, { $unset: { "join_date": "" } })