본문 바로가기
Book & Lecture/Database

Mongo DB 1 - 개요/CRUD함수/Array/정렬

by studio ODOC 2023. 4. 19.
반응형

Mongo DB (몽고 DB) 키워드로 공부하기 1 - 

개요/CRUD함수/Array/정렬

mongo DB

  • 스케일 키우기 쉬움
  • 분산 시스템에 유리
  • RDBMS의 교훈으로부터 개선

 

RDBMS를 분산 시스템에서 사용하기 어려운 이유

  • Join
  • 정규화

 

CRUD

  • insertOne()
    • RDB는 pkey id가 없으면 생성 x
    • mongoDB는 id가 없어도 생성해줌
  • insertMany()
    • 결과 리스트 리턴
    • 여러번 insertOne()할 것을 한 번에!
  • findOne()
    • 하나의 결과 찾기
  • find()
    • 결과 리스트 리턴
  • Cursor
    • limit : 함수 리턴의 개수 제한
      • limit은 크게 잡고 걸어도 좋다. 쿼리 리턴 크기를 줄여주니까!
    • skip : 함수 리턴의 첫 n개 스킵
      • 프로젝트에서 skip을 엄청 크게 잡고 사용하면 laod 증가 → id비교해서 포지션 잡고 접근하는 등의 대규모 skip 방지하는 방식 사용 권장함
반응형

Array 쿼리

  • 18보다 크고 30보다 작은 것을 찾으려고 짠 쿼리.
    • 결과는 [40,10,5] . 왜? 각 gt, lt 조건이 따로따로 돌기 때문.
      • → gt조건에 따라 40이 선택되고 lt조건에 따라 10,5를 선택하여 [40,10,5] 리턴
  • 아래는 $elemMatch를 사용한 and 연산으로 조건 돌리기 위한 개선책

 

정렬

  • sort( { 어트리뷰트:1or-1 } )
  • 1 : 오름차순 ↔ -1 : 내림차순
  • Combined Query
  • Updating Document
    • UpdateOne() : 탐색한 첫번째 데이터를 업데이트
    • UpdateMany() : 탐색한 전부를 업데이트
    • inc : 덧셈(+,-)
    • mul : 곱셈(0.0~)
    • max
    • min
      • push()
      • pop()
      • pull()
      • pullAll()
      • addToSet() : 이미 존재하지 않는 것에 대해서만 append
      • deleteOne, deleteMany
      • replaceOne()Array update 함수upsert : 있으면 update, 없으면 insert
        •  

 

2023.04.19 - [Book & Lecture/Database] - Mongo DB (몽고 DB) 키워드로 공부하기 2 - 인덱싱(index)

 

Mongo DB (몽고 DB) 키워드로 공부하기 2 - 인덱싱(index)

Mongo DB (몽고 DB) 키워드로 공부하기 2 - 인덱싱(index) Index 인덱스는 RAM에 올라오기 때문에 가능한 한 적게 만들어야 연습문제 MultiIndex를 만들면 순서(lap_times.2)값은 사라짐 → 그래서 lap_times.2는

studiodoc.tistory.com

 

반응형