일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- oracle
- GPT-4's answer
- 자바암호
- 고전역학
- chatGPT's answer
- write by GPT-4
- 뉴턴역학
- GIT
- Java
- 리눅스
- kotlin
- 웹 크롤링
- 인프라
- 자바네트워크
- Database
- NIO
- 유닉스
- JVM
- android
- 코틀린
- 파이썬
- Spring boot
- 시스템
- write by chatGPT
- lombok
- flet
- 자바
- 역학
- 소프트웨어공학
- python
- Today
- Total
Akashic Records
MongoDB 제한자 본문
제한자?
MongoDB에서 문서의 부분 갱신은 원자적 갱신 제한자(update modifier)를 사용해 매우 효율적으로 수행할 수 있다. 갱신 제한자는 키를 변경, 추가 또는 제거하고 배열과 내장 문서를 조작하는 복잡한 갱신 연산을 지정하는 데 사용되는 특수 키이다.
“$set”
키의 값을 설정한다. 키가 존재하지 않으면 생성, 스키마를 갱신하거나 사용자 정의 키를 추가할 때 사용.
심지어 키의 데이터형도 변경할 수 있다.
내장 문서 내부의 데이터를 변경할 때 쓸 수 있다. {"$set” : {“author.name” : “joe schmoe”}}
“$unset”
키와 값을 모두 제거할 수 있다.
“$inc”
이미 존재하는 키의 값을 변경하거나 새롭게 키를 생성하는데 사용
투표와 같이 자주 변하는 수치 값을 갱신하는 데 유용
"$set”과 비슷하지만 숫자를 증감을 목적으로 사용.
정수, long, double 형의 값에만 사용, 다른 데이터형에 사용할 수 없다.
“$push”
배열 제한자
지정된 키가 이미 존재하면 배열의 끝에 요소를 추가하고, 그렇지 않으면 새로운 배열을 생성해 추가한다.
“$nc”
배열 제한자
지정된 키가 존재하는지 확인
“$addToSet”
배열 제한자
"$nc”+”$push”와 같은 기능을 한다, 즉 중복을 피해서 배열에 추가할 때 사용.
"$each”
"$addToSet”과 함께 사용하여 여러 개의 값을 중복을 피해서 배열에 추가할 수 있게 된다.
“$pop”
배열을 스택이나 큐로 사용.
{$pop : {key : 1}} → 배열의 끝부터 요소를 제거
{$pop : {key : -1}} → 배열의 처음부터 제거
“$pull”
배열에서 하나의 문서만 지우는 것이 아니고 일치하는 모든 문서를 제거한다.
제한자의 속도
"$inc”는 제잘에서 문서를 수정한다, 즉 문서의 크기를 변경할 필요가 없어 매우 효율적이다. 반대로 배열 제한자는 문서의 크기를 변경할 수도 있기 때문에 느릴 수도 있다.
'오래된글 > DataBase' 카테고리의 다른 글
MongoDB, mogo Shell (0) | 2018.04.17 |
---|---|
MongoDB, 설치와 간단 사용법 (0) | 2018.04.17 |
Index가 옵티마이저에 의해 수행되는 경우 (0) | 2018.04.15 |
Hashing (0) | 2018.04.15 |
CUBRID 주요기능 (0) | 2018.04.15 |