본문 바로가기
SEMINAR/몽고DB

MONGODB-Database/Collection/Document 생성·제거와 Insert()

by 스꼬맹이브로 2020. 4. 23.
728x90
반응형
SMALL

Database/Collection/Document 관계

※ 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

- Collection 생성 : db.createCollection(name, [options])

 · name : 생성하려는 컬렉션의 이름

 · options : document타입으로 구성된 해당 컬렉션의 설정 값 

Collection의 option 종류

생성 방법 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()

(실수로 같은 document 3번 넣은 흔적....^^;)

 

- 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명령어는 쓰기 명령어에 해당하는 모든 작업을 수행

bulkWrite 지원작업

 ex) abc라는 collection에 3개의 document가 있고, bulkWrite 수행

 result : id 1번이 삭제되었으며 4, 5번이 삽입되었고, 2번이 update가 되었음을 확인할 수 있음.
           이 모든 작업이 한번에 수행됨!

 

- Document제거 : db.COLLECTION_NAME.remove(criteria, justOne)

 

 

 

정리하고 또 배우고... 정리하고 또 검색하고.... 쉽지않구만...

728x90
반응형
LIST

'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