정의
$meta문서와 관련된 메타데이터를 반환합니다(예: 텍스트 검색 시
"textScore").$meta표현식 구문은 다음과 같습니다.{ $meta: <metaDataKeyword> } 표현식 다음 값을 로 지정할 수 있습니다.
$meta<metaDataKeyword>Keyword설명"textScore""indexKey"텍스트가 아닌 인덱스를 사용하면 문서의 인덱스 키를 반환합니다.
{ $meta: "indexKey" }표현식은 디버깅 목적으로만 사용되고 애플리케이션 로직에는 사용되지 않으며cursor.returnKey()보다 선호됩니다.MongoDB Search는 다음과 같은 추가
$meta키워드를 제공합니다.자세한 내용은 MongoDB Search 문서를 참조하세요.
중요
다음
$meta키워드는 Stable API V1에서 지원되지 않습니다."textScore""indexKey""score""searchScore""scoreDetails""searchHighlights""searchSequenceToken""searchScoreDetails""searchRootDocumentId""vectorSearchScore"
는 쿼리에서만
$search사용할 수 있으며searchScorevectorSearchScore는 쿼리에서만$vectorSearch사용할 수 있습니다. 다른 쿼리searchScore에서 및 를 사용하는vectorSearchScore경우 해당 쿼리 실패합니다.이 포함된 쿼리에서만 를
$search사용할 수 있습니다.searchRootDocumentIdreturnScope
행동
텍스트 점수 메타데이터 $meta: "textScore"
$text 검색 필수
{ $meta: "textScore" }표현식은$text와 함께 사용해야 합니다. 예시:찾기에서
{ $meta: "textScore" }를 사용하려면 쿼리 조건에$text연산자를 지정해야 합니다. 쿼리 조건에$text연산자를 지정하지 않으면 작업이 실패합니다.
참고
$text자체 관리(비Atlas) 배포를 위한 텍스트 쿼리 기능을 제공합니다. MongoDB 에서 호스팅되는 데이터의 경우, MongoDB 향상된 전체 텍스트 쿼리 솔루션인 MongoDB Search.도 제공합니다.
가용성
프로젝션에서의 사용
텍스트 점수 필터링
집계에서 텍스트 점수 값을 포함한 필드를 출력하는 단계를 따른 후, 후속 단계에서 쿼리 조건을 지정하거나 해당 필드에 대해 작업을 수행할 수 있습니다. 예를 들어 집계 파이프라인의 $text를 참조합니다.
찾기에서는 텍스트 점수에 쿼리 조건을 지정할 수 없습니다. 대신 집계를 사용하세요.
정렬에서 사용
"textScore"메타데이터는 내림차순으로 정렬됩니다.정렬 작업에 사용하려면
{ $meta: "textScore" }표현식을 임의 필드 이름으로 설정합니다. 필드 이름은 쿼리 시스템에서 무시됩니다.
프로젝션 없이 정렬
집계에서는
textScore를 프로젝션하지 않고도 결과 문서를{ $meta: "textScore" }별로 정렬할 수 있습니다.찾기에서는
textScore를 프로젝션할 필요 없이 결과 문서를{ $meta: "textScore" }별로 정렬할 수 있습니다.
프로젝션으로 정렬
집계 에서 프로젝션 과 정렬 모두에 표현식 포함하면 프로젝션 과 정렬에서 표현식 에 대해 서로 다른 필드 이름을 가질 수 있습니다. 정렬의 필드 이름은 쿼리 시스템에서
{ $meta: "textScore" }무시됩니다.찾기에서 프로젝션 과 정렬 모두에 표현식 포함하면 프로젝션 과 정렬에서 표현식 에 대해 서로 다른 필드 이름을 가질 수 있습니다. 정렬의 필드 이름은 쿼리 시스템에서
{ $meta: "textScore" }무시됩니다.
인덱스 키 메타데이터 $meta: "indexKey" (집계 및 찾기)
사용법
{ $meta: "indexKey" }표현식은 디버깅 목적으로만 사용되며 애플리케이션 로직용으로는 사용할 수 없습니다.cursor.returnKey()보다{ $meta: "indexKey" }표현식을 사용하는 것이 좋습니다.
가용성
집계에서
{ $meta: "indexKey" }표현식은$project,$group$sortByCount등과 같은 집계 표현식을 허용하는 다양한 단계에 포함될 수 있지만$sort은(는) 포함되지 않습니다. 그러나 집계 파이프라인을 사용하면 먼저{ $meta: "indexKey" }표현식(예:$project,$addFields등)을 프로젝트한 다음 후속$sort단계에서 해당 필드를 기준으로 정렬할 수 있습니다.찾기에서
{ $meta: "indexKey" }표현식은 프로젝션 문서의 일부로만 사용할 수 있습니다.
반환 값
반환되는 값은 데이터베이스가 인덱스의 값을 나타내기로 결정하는 방법에 따라 달라지며 버전에 따라 변경될 수 있습니다. 표시된 값은 필드의 실제 값이 아닐 수 있습니다.
반환되는 값은 시스템에서 선택한 실행 계획에 따라 달라집니다. 예를 들어 쿼리에 답변하는 데 사용할 수 있는 인덱스가 두 개 있는 경우 'indexKey' 메타데이터의 값은 선택한 인덱스에 따라 달라집니다.
인덱스를 사용하지 않으면
{ $meta: "indexKey" }표현식이 값을 반환하지 않으며 필드가 출력의 일부로 포함되지 않습니다.