반응형
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 방지하는 방식 사용 권장함
- limit : 함수 리턴의 개수 제한
반응형
Array 쿼리
- 18보다 크고 30보다 작은 것을 찾으려고 짠 쿼리.
- 결과는 [40,10,5] . 왜? 각 gt, lt 조건이 따로따로 돌기 때문.
- → gt조건에 따라 40이 선택되고 lt조건에 따라 10,5를 선택하여 [40,10,5] 리턴
- 결과는 [40,10,5] . 왜? 각 gt, lt 조건이 따로따로 돌기 때문.
- 아래는 $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)
반응형
'Book & Lecture > Database' 카테고리의 다른 글
Mongo DB 5(Finished) - Modeling (0) | 2024.05.12 |
---|---|
Mongo DB 4 - Instructions (Aggregation, Join) (0) | 2024.05.12 |
Mongo DB 3 - Replication 및 Write&Read concerns (0) | 2023.04.21 |
Mongo DB 2 - 인덱싱(index) (0) | 2023.04.20 |