MongoDB-제한 컬렉션

Capped collections생성, 읽기 및 삭제 작업을위한 고성능을 지원하기 위해 삽입 순서를 따르는 고정 크기 순환 컬렉션입니다. 순환이란 컬렉션에 할당 된 고정 크기가 소진되면 명시적인 명령을 제공하지 않고 컬렉션에서 가장 오래된 문서를 삭제하기 시작 함을 의미합니다.

제한 컬렉션은 업데이트로 인해 문서 크기가 증가하는 경우 문서 업데이트를 제한합니다. 제한 컬렉션은 디스크 저장소 순서대로 문서를 저장하므로 문서 크기가 디스크에 할당 된 크기를 늘리지 않도록합니다. 제한 컬렉션은 로그 정보, 캐시 데이터 또는 기타 대용량 데이터를 저장하는 데 가장 적합합니다.

제한된 컬렉션 만들기

제한된 컬렉션을 생성하려면 일반 createCollection 명령을 사용하지만 capped 옵션으로 true 컬렉션의 최대 크기를 바이트 단위로 지정합니다.

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

컬렉션 크기 외에도 다음을 사용하여 컬렉션의 문서 수를 제한 할 수 있습니다. max 매개 변수-

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

컬렉션의 제한 여부를 확인하려면 다음을 사용하십시오. isCapped 명령-

>db.cappedLogCollection.isCapped()

제한으로 변환하려는 기존 컬렉션이있는 경우 다음 코드를 사용하여 수행 할 수 있습니다.

>db.runCommand({"convertToCapped":"posts",size:10000})

이 코드는 기존 컬렉션을 변환합니다. posts 모자 컬렉션에.

제한 컬렉션 쿼리

기본적으로 제한된 컬렉션에 대한 찾기 쿼리는 삽입 순서로 결과를 표시합니다. 그러나 문서를 역순으로 검색하려면sort 다음 코드와 같이 명령-

>db.cappedLogCollection.find().sort({$natural:-1})

알 가치가있는 제한된 컬렉션과 관련하여 다른 몇 가지 중요한 사항이 있습니다.

  • 제한된 컬렉션에서 문서를 삭제할 수 없습니다.

  • 제한된 컬렉션에는 _id 필드에도 기본 인덱스가 없습니다.

  • 새 문서를 삽입하는 동안 MongoDB는 실제로 디스크에서 새 문서를 수용 할 장소를 찾을 필요가 없습니다. 컬렉션 끝에 새 문서를 맹목적으로 삽입 할 수 있습니다. 이렇게하면 제한된 컬렉션의 삽입 작업이 매우 빠릅니다.

  • 마찬가지로 문서를 읽는 동안 MongoDB는 디스크에있는 것과 동일한 순서로 문서를 반환합니다. 이것은 읽기 작업을 매우 빠르게 만듭니다.