와일드카드 인덱스 서명
이 페이지의 내용
MongoDB 5 부터 시작.0, 와일드카드 인덱스 에 대한 wildcardProjection
옵션이 인덱스 서명 에 포함되어 있습니다. 인덱스 서명은 인덱스를 고유하게 식별하는 매개변수의 조합입니다. 즉, wildcardProjection
옵션에 동일한 필드가 포함되어 있지 않은 한 동일한 키 패턴 으로 와일드카드 인덱스를 여러 개 만들 수 있습니다.
프로젝션 서명 디스플레이
MongoDB 6.3, 6.0.5 및 5.0.16부터 wildcardProjection
필드는 인덱스 프로젝션을 제출된 형식으로 저장합니다. 이전 버전의 서버에서는 프로젝션을 정규화된 형태로 저장했을 수 있습니다.
서버는 인덱스를 동일한 방식으로 사용하지만 listIndexes
및 db.collection.getIndexes()
명령의 출력에 차이가 있을 수 있습니다.
예제
books
컬렉션에 대한 다음 와일드카드 인덱스를 고려하세요.
db.books.createIndex( { "$**": 1 }, { wildcardProjection: { "author.name": 1, "author.website": 1 }, name: "authorWildcard" } )
인덱스 키 패턴은 "$**"
입니다. 다른 wildcardProjection
를 지정하면 동일한 키 패턴으로 다른 와일드카드 인덱스를 만들 수 있습니다. 예를 들면 다음과 같습니다.
db.books.createIndex( { "$**": 1 }, { wildcardProjection: { "publisher.name": 1 }, name: "publisherWildcard" } )
생성된 인덱스를 보려면 getIndexes()
메서드를 실행합니다.
db.books.getIndexes()
출력:
[ { v: 2, key: { _id: 1 }, name: '_id_' }, { v: 2, key: { '$**': 1 }, name: 'authorWildcard', wildcardProjection: { author: { website: true, name: true }, _id: false } }, { v: 2, key: { '$**': 1 }, name: 'publisherWildcard', wildcardProjection: { publisher: { name: true }, _id: false } } ]