MongoDB에 데이터를 넣어보자(Insert - Single Document)

Jamie·2020년 12월 1일
0

MongoDB

목록 보기
4/8
post-thumbnail

선행작업

mongoDB 접속

$ mongosh mongodb://localhost:27017/admin?authSource=admin --username jamie

Database 전환

> use testDB
switched to db testDB
  • Database가 없는 경우, MongoDB는 해당 Database에 대한 데이터를 처음 저장할 때, 데이터베이스를 생성함
  • 즉, testDB라는 Database는 데이터가 아직 안들어있으므로 생성되지 않았고, 데이터 인입시에 생성되는 구조인 듯

Single Document 삽입

  • MongoDB는 데이터를 JavaScript Object Notation - JSON의 이진 형식인 BSON 형태로 저장
  • Document는 Collections에 저장됨
    • Collection도 Database와 마찬가지로, 없는 경우 해당 Collection에 대한 데이터를 처음 저장할 때, Collection을 생성함
  • Document가 _id 필드를 지정하지 않으면, MongoDB는 ObjectID값이 있는 _id 필드를 추가
  • 삽입할 데이터
    • inventory Collection에 새 Document를 삽입
    db.inventory.insertOne(
       { "item" : "canvas",
         "qty" : 100,
         "tags" : ["cotton"],
         "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" }
       }
    )
  • 삽입 : ObjectID를 반환하는 것을 확인할 수 있음
    > db.inventory.insertOne(
    ...    { "item" : "canvas",
    .....      "qty" : 100,
    .....      "tags" : ["cotton"],
    .....      "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" }
    .....    }
    ... )
    {
      acknowledged: true,
      insertedId: ObjectId("5fc5d9c60e08d0dc37390776")
    }

Dynamic Schemas(동적 스키마)

  • SQL의 Table과 달리 MongoDB의 Collection에는 동적 스키마가 있음
    • 즉, Single(단일) Collection은 모양이 다른 문서를 저장할 수 있음(예, 다른 필드 및 Value Type)
    • SQL과 달리 필드를 추가/제거 하거나 Type을 수정하는데 DDL 작업이 필요하지 않음 → Document를 직접 Update하면 됨
  • MongoDB는 Dynamic Collection 정의를 지원하지만, Collection의 Document에 대해 균일한 스키마를 적용할 수도 있음(3.6 ~) Schema Validation Json 참고

출처

MongoDB 공식 가이드 - https://docs.mongodb.com/guides/server/insert/
MongoDB 공식 FAQ - https://docs.mongodb.com/manual/faq/fundamentals/

profile
성장중인 제이미입니다.

0개의 댓글