MongoDB 각종 조회 조작 상세 설명
MongoDB 에 서 는 find 를 사용 하여 조회 하고 find 의 첫 번 째 매개 변 수 를 지정 하면 전체 와 부분 조 회 를 실현 할 수 있 습 니 다.
1.모두 조회
빈 검색 문서{}은 집합 한 모든 내용 과 일치 합 니 다.검색 문 서 를 지정 하지 않 으 면 기본 값 은{}입 니 다.
2.부분 조회
3.키 의 선별
키 의 선별 은 검색 할 때 관심 있 는 키 값 만 되 돌려 주 고 find 의 두 번 째 매개 변 수 를 지정 하여 이 루어 집 니 다.이렇게 하면 전송 하 는 데 이 터 를 절약 할 수 있 고 클 라 이언 트 가 문 서 를 디 코딩 하 는 시간 과 메모리 소 모 를 절약 할 수 있다.
조회 할 때 데이터베이스 가 관심 을 가 지 는 조회 문서 의 값 은 상수 여야 합 니 다.
2.조회 조건
1.비교 조회
$lt,$lt,$lt,$gte,$ne 과<,<=,>,>=,!=한 범위 내의 값 을 찾기 위해 일일이 대응 하 는 것 이다.
2.관련 조회
$in 은 키 의 여러 값 을 조회 하 는 데 사 용 됩 니 다.$nin 은 선별 배열 의 모든 조건 과 일치 하지 않 는 문 서 를 되 돌려 줍 니 다.$in 과$not 를 조합 하면$nin 과 같은 효 과 를 얻 을 수 있 습 니 다.
$or 는 여러 키 를 or 로 조회 하 는 데 사 용 됩 니 다.
3.특정 유형의 조회
1.null 조회
null 은 자신 뿐만 아니 라 키 가 존재 하지 않 는 문서 도 일치 합 니 다.
2.정규 표현 식
3.배열 조회
$all:여러 요 소 를 통 해 배열 과 일치 합 니 다.
$size:지정 한 길이 의 배열 을 조회 합 니 다.
$slice:배열 의 키 집합 을 되 돌려 줍 니 다.
4.내 장 된 문서 조회
4.$where 조회
$where 조 회 는 MongoDB 의 고급 조회 부분 으로 임의의 JavaScript 를 조회 의 일부분 으로 실행 할 수 있 으 며 다른 조회 방식 의 보충 입 니 다.
$where 조 회 는 모든 문 서 를 BSON 에서 JavaScript 대상 으로 변환 한 다음$where 표현 식 을 통 해 실행 해 야 합 니 다.이 과정 은 색인 을 사용 할 수 없 기 때문에 일반적인 조회 속도 가 훨씬 느 립 니 다.사용 해 야 할 경우 일반적인 조 회 를 사전 필터 로 사용 할 수 있 습 니 다.색인 을 이용 할 수 있다 면 비$where 자구 에 따라 색인 을 걸 러 내 고 마지막 으로$where 를 사용 하여 결 과 를 조절 할 수 있 습 니 다.다른 방식 은 매 핑 간소화-MapReduce 를 사용한다.
커서
커서 는 유용 한 것 입 니 다.MongoDB 데이터 베 이 스 는 커서 를 사용 하여 find 의 실행 결 과 를 되 돌려 줍 니 다.클 라 이언 트 가 커서 를 사용 하면 최종 결 과 를 효과적으로 제어 할 수 있 습 니 다.예 를 들 어 페이지,정렬 등 입 니 다.
1.limit,skip,sort
limit:결과 수량 제한,상한 선 제한.skip:일치 하 는 이전 n 개의 문 서 를 생략 하고 남 은 문 서 를 되 돌려 줍 니 다.skip 이 너무 많은 문 서 를 생략 할 때 성능 문제 가 발생 할 수 있 으 므 로 되도록 피 하 는 것 을 권장 합 니 다.sort:지정 한 키 에 따라 문 서 를 정렬 합 니 다.1 은 오름차,-1 은 내림차 입 니 다.
2.고급 조회 옵션
포장 조회:sort,limit 또는 skip 을 사용 하여 최종 결 과 를 한층 더 제어 합 니 다.
유용 한 설정 옵션:
$maxscan:integer,검색 할 문서 의 수 를 지정 합 니 다.$min:document,검색 의 시작 조건 입 니 다.$max:document,검색 의 종료 조건 입 니 다.$hint:document,서버 에서 어떤 색인 을 사용 하여 조회 할 지 지정 합 니 다.$explain:boolean,검색 이 실 행 된 세부 사항(색인,결과 수량,시간 소모 등)을 가 져 옵 니 다.snapshot:boolean,검색 결과 가 검색 이 실 행 된 순간 일치 하 는 스냅 샷 인지 확인 하여 일치 하지 않 는 읽 기 를 피 합 니 다.
포장 조 회 는 조회 조건 을 더 큰 조회 문서 에 포장 할 것 이다.예 를 들 어 다음 과 같은 조 회 를 수행 할 때:
4.567913.셸 은 검색 을{"name":"bar"}에서{"$query":{"name":"bar"},"$orderby":{"x":1}}으로 변환 합 니 다.{"name":"bar"}을 검색 문서 로 데이터베이스 에 직접 보 내 는 것 이 아 닙 니 다.
3.커서 내부 에서 커서 를 보 는 두 가지 측면:클 라 이언 트 의 커서 와 클 라 이언 트 커서 가 표시 하 는 데이터베이스 커서(서버 쪽).
서버 쪽 에 서 는 커서 가 메모리 와 다른 자원 을 소모 하기 때문에 합 리 적 인 상황 에서 가능 한 한 빨리 방출 해 야 합 니 다.서버 측 에서 커서 가 종 료 된 상황 은 다음 과 같 습 니 다.
1.커서 가 일치 하 는 결 과 를 교체 할 때 자동 으로 지 워 집 니 다.
2.커서 는 클 라 이언 트 가 역할 영역 에 없 는 상황 에서 드라이브 는 서버 에 전문 적 인 메 시 지 를 보 내 서 커서 를 없 애 도록 합 니 다.
3.시간 을 초과 하여 소각 할 수 있 습 니 다.immortal 함 수 를 사용 하여 커서 를 닫 을 수 있 습 니 다.시간 이 초과 되 었 을 때 이 조작 을 사용 하면 결 과 를 교체 한 후에 커서 를 닫 아야 합 니 다.
총화
MongoDB 를 사용 하려 면 문서 구 조 를 합 리 적 으로 디자인 하여 특정한 수 요 를 만족 시 켜 야 한다.예 를 들 어 무 작위 로 문 서 를 선택 하고 skip 을 사용 하여 무 작위 문 서 를 건 너 뛰 면 문서 에 무 작위 키 를 추가 하지 않 은 다음 에 무 작위 로 문 서 를 조회 하 는 것 이 효율 적 이 고 무 작위 키 는 색인 을 추가 할 수 있어 효율 이 높다.합 리 적 인 선택,합 리 적 인 디자인.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
레코드를 업데이트하고 업데이트 전에 동일한 레코드를 삭제하는 방법(nest js & mongoDB)ID로 레코드를 업데이트하고 싶지만 업데이트 전에 동일한 레코드에 이전에 저장된 데이터를 삭제하고 싶습니다. 프로세스는 무엇입니까? 컨트롤러.ts 서비스.ts 나는 이것을 해결하기 위해 이런 식으로 노력하고 있습니다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.