Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

Hidden Indexes

이 페이지의 내용

  • 행동
  • 제한 사항
  • 예제

숨겨진 인덱스는 쿼리 플래너 에 표시되지 않으며 쿼리를 지원하는 데 사용할 수 없습니다.

플래너에서 인덱스를 숨기면 실제로 인덱스를 제거하지 않고도 인덱스 제거의 잠재적 영향을 평가할 수 있습니다. 영향이 부정적인 경우 제거된 인덱스를 다시 생성할 필요 없이 인덱스 숨기기를 해제할 수 있습니다.

숨겨진 인덱스는 플래너에서 숨겨지는 것을 제외하고는 숨겨지지 않은 인덱스처럼 동작합니다. 즉

hidden 인덱스를 만들려면 db.collection.createIndex() 메서드를 true로 설정된 숨김 옵션과 함께 사용합니다.

참고

db.collection.createIndex()와 함께 hidden 옵션을 사용하려면 featureCompatibilityVersion5.0 이상으로 설정되어 있어야 합니다.

예를 들어, 다음 작업은 borough 필드에 숨겨진 오름차순 인덱스를 생성합니다.

db.addresses.createIndex(
{ borough: 1 },
{ hidden: true }
);

확인하려면 addresses 컬렉션에서 db.collection.getIndexes()을(를) 실행하세요.

db.addresses.getIndexes()

이 작업은 다음 정보를 반환합니다.

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"borough" : 1
},
"name" : "borough_1",
"hidden" : true
}
]

인덱스 옵션 hidden은(는) 값이 true인 경우에만 반환됩니다.

참고

  • 인덱스를 숨기려면 featureCompatibilityVersion5.0 이상으로 설정해야 합니다.

  • _id 인덱스는 숨길 수 없습니다.

기존 인덱스를 숨기려면 collMod 명령 또는 mongosh 헬퍼 db.collection.hideIndex() 를 사용할 수 있습니다.

예를 들어 숨기지 않고 인덱스를 생성합니다.

db.restaurants.createIndex( { borough: 1, ratings: 1 } );

인덱스을 숨기려면 다음 중 하나를 지정할 수 있습니다.

  • db.collection.hideIndex() 메서드에 대한 인덱스 키 사양 문서:

    db.restaurants.hideIndex( { borough: 1, ratings: 1 } ); // Specify the index key specification document
  • db.collection.hideIndex() 메서드에 대한 인덱스 이름:

    db.restaurants.hideIndex( "borough_1_ratings_1" ); // Specify the index name

확인하려면 restaurants 컬렉션에서 db.collection.getIndexes()을(를) 실행하세요.

db.restaurants.getIndexes()

이 작업은 다음 정보를 반환합니다.

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"borough" : 1,
"ratings" : 1
},
"name" : "borough_1_ratings_1",
"hidden" : true
}
]

인덱스 옵션 hidden은(는) 값이 true인 경우에만 반환됩니다.

숨겨진 인덱스를 숨김 해제하려면 collMod 명령 또는 mongosh 헬퍼 db.collection.unhideIndex()를 사용하면 됩니다. 다음 두 가지 중 하나를 지정할 수 있습니다.

  • db.collection.unhideIndex() 메서드에 대한 인덱스 키 사양 문서:

    db.restaurants.unhideIndex( { borough: 1, city: 1 } ); // Specify the index key specification document
  • db.collection.unhideIndex() 메서드에 대한 인덱스 이름:

    db.restaurants.unhideIndex( "borough_1_ratings_1" ); // Specify the index name

확인하려면 restaurants 컬렉션에서 db.collection.getIndexes()을(를) 실행하세요.

db.restaurants.getIndexes()

이 작업은 다음 정보를 반환합니다.

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"borough" : 1,
"ratings" : 1
},
"name" : "borough_1_ratings_1"
}
]

값이 true인 경우에만 필드가 반환되므로 인덱스 옵션 hidden은(는) 더 이상 borough_1_ratings_1 인덱스의 일부로 표시되지 않습니다.

인덱스는 숨겨진 동안 완전히 유지되므로 숨김이 해제되면 인덱스를 즉시 사용할 수 있습니다.

돌아가기

대소문자를 구분하지 않는 인덱스

이 페이지의 내용