TIL-220128

EBinY·2022년 1월 28일
0

TIL - Today I Learned

목록 보기
52/54

MongoDB

  • NoSQL DB, 도큐멘트를 사용, 컬렉션에 저장, DB는 컬렉션들로 구성됨
  • 비구조적인 자유로운 형태의, 대용량의 데이터
  • 확장이 쉽고, 수평적 확장
  • 빠르게 구축이 가능, 데이터 구조도 유연하여 자주 업데이트할 경우에 유리
  • Atlas Cloud를 이용
    • GUI와 CLI로 데이터 시각화, 분석, 내보내기, 빌드에 사용
    • 클러스터를 이용해 배포
  • 클러스터 배포
    • 클러스터: 인스턴스들의 모임, 하나의 시스템으로 작동
    • 인스턴스: 특정 소프트웨어를 실행하는 로컬 또는 클라우드 단일 머신
    • 레플리카 세트: 단일 클러스터에서 각각의 인스턴스는 동일한 복제본을 가지고 있고, 이를 지칭함
  • 도큐먼트: 필드-값 쌍으로 저장된 데이터
  • 필드: 데이터 포인트 식별자
  • 값: 식별자와 연결된 데이터
  • 컬렉션: 도큐먼트로 구성된 저장소
  • JSON: 사람이 보기 편한 형태, 출력 시 사용
  • BSON: 효율적 저장을 위한 형태, 다양한 데이터 타입 사용, 빠르고 가볍고 유연한 구조, 이진법 기반
  • JSON
    • mongoimport
    • mongoexport
  • BSON
    • mongorestore
    • mongodump
  • CREATE
    • show collections
    • db.컬렉션이름.insert()
    • db.컬렉션이름.find()
    • id 값이 생략되면 자동 생성, id가 다르면 같은 필드-값 이라도 다른 도큐먼트로 인식
    • ordered 옵션을 통해 순차적 데이터 입력 유무를 선택, 중간에 에러가 나면 입력이 중단되게끔
  • READ
    • show dbs
    • db.컬렉션이름.find().count()
    • db.컬렉션이름.find()
    • cursor.pretty() - cursor는 find 메소드를 실행해서 얻어낸 결과의 집합
    • db.컬렉션이름.findOne()
  • UPDATE
    • db.컬렉션이름.updateOne()
    • db.컬렉션이름.updateMany()
    • 연산자
      • $inc
      • $set
      • $push
  • DELETE
    • db.컬렉션이름.deleteOne()
    • db.컬렉션이름.deleteMany()
    • db.컬렉션이름.drop()
  • 연산자
    • 비교연산자
      • eq,eq,gt,gte,gte,ne,lt,lt,lte
    • 논리연산자
      • and,and,or,nor,nor,not
    • 표현연산자
      • $expr
    • 배열연산자
      • push,push,all,$size
    • 배열연산자와 projection
      • $elemMatch(projection), $elemMatch(query), $regex
  • Aggregation Framwork
    • MongoDB에서 파이프라인에 따라 데이터를 처리
    • $match, $group, $project

0개의 댓글