※ MongoDB 실행
- Mongo : 명령이 입력되는 셸 ( Mongod도 같이 실행)
- Mongod : 데이터베이스의 호스트 프로세스 ( 백그라운드에서 실행)
실질적으로 명령을 처리하는 부분
◆ Database
- RDBMS와 같은 개념
- Collection들의 물리적인 컨테이너 (0개 이상의 Collection들의 집합으로 구성)
- Database생성 : use DATABASE_NAME
- 사용 중인 DB 확인 : db
- DB리스트 확인 : show dbs
(리스트에서 방금 만든 데이터베이스를 확인하려면 최소 한개의 document를 추가해야 함)
-Database제거 : db.dropDatabase() → 제거하고 싶은 데이터베이스를 선택 후, 삭제
◆ Collection
- RDBMS의 table과 유사한 개념
- Document들의 집합으로 구성
- Collection 생성 : db.createCollection(name, [options])
· name : 생성하려는 컬렉션의 이름
· options : document타입으로 구성된 해당 컬렉션의 설정 값
생성 방법 1 : 기본 컬렉션 생성 방법
생성 방법 2 : 컬렉션을 옵션과 함께 생성하는 방법
생성 방법 3 : createCollection() 메서드를 사용하지 않고 document 추가하는 방법
- Collection 확인 : show collections
- Collection 삭제 : db.COLLECTION_NAME.drop()
◆ Document
- RDBMS의 record와 유사한 개념
- JSON objects 형태이며 1개 이상의 key-value 쌍의 데이터 구조
- 하나의 크기는 최대 16MB로 제한
( 그 이상을 저장하려면 Large file을 작게 분할하여 분리된 documents로 저장하는 mongodb driver 제공) - 각 document는 _id라는 고유한 값을 가짐 (이 전 정리한 내용 참고)
- Document추가 : db.COLLECTION_NAME.insert(document)
ex1) document 1개 추가
ex2) document 2개 이상 추가
- Collection Document 리스트 확인 : db.COLLECTION_NAME.find()
- Insert()
※ insert vs insertOne(insertMany) : document에 대한 성공여부와 고유 id번호를 생성, 또한 오류처리에도 차이가 있음.
- insertOne과 insertMany는 몽고DB 3.2버전에서 insert를 대체하기 위해서 만들어졌지만
아직까지는 insert가 많이 쓰임 - 그 외 save, bulkWrite 존재
- save : document가 존재하면 update 역할을 하고, 존재하지 않으면 insert역할을 함.
update와의 차이점은? Document단위로 데이터를 변경한다. - document 단위로 데이터를 변경하는 것은 save가 효율적이지만,
필드 단위로 변경하는 경우에는 update문이 더 효율적 - bulkWrite명령어는 쓰기 명령어에 해당하는 모든 작업을 수행
ex) abc라는 collection에 3개의 document가 있고, bulkWrite 수행
result : id 1번이 삭제되었으며 4, 5번이 삽입되었고, 2번이 update가 되었음을 확인할 수 있음.
이 모든 작업이 한번에 수행됨!
- Document제거 : db.COLLECTION_NAME.remove(criteria, justOne)
정리하고 또 배우고... 정리하고 또 검색하고.... 쉽지않구만...
'SEMINAR > 몽고DB' 카테고리의 다른 글
MongoDB Error: couldn't connect to server 127.0.0.1:27017 오류해결 (0) | 2022.12.07 |
---|---|
MONGODB - update() (0) | 2020.05.07 |
MongoDB - sort(), limit(), skip() (0) | 2020.05.04 |
MONGODB - Document조회 (0) | 2020.04.26 |
MONGODB-소개, 데이터모델 (0) | 2020.04.22 |