버전 8.2에 추가 되었습니다.
정의
구문
이 단계에는 다음 구문이 있습니다.
{ $score: { score: <expression>, scoreDetails: <boolean>, normalization: "none|sigmoid|minMaxScaler", weight: <expression> } }
필드
$score 은(는) 다음 필드를 사용합니다.
필드 | 유형 | 설명 | ||
|---|---|---|---|---|
| 표현식 | 입력 점수에서 새 값을 계산하고 키워드 | ||
| 부울 |
| ||
| 문자열 | 선택 사항. 점수를
| ||
| Double | 선택 사항. 정규화 후 |
행동
$score 의 출력 문서는 입력 문서와 동일하지만 추가 계산된 점수를 메타데이터 로 포함합니다.
파이프라인 에 여러 $score 단계를 지정하는 경우 파이프라인 의 마지막 $score 단계가 이전 $score 단계의 점수 메타데이터 재정의합니다.
점수 상세 정보
scoreDetails 을(를) true(으)로 설정하다 $score 이(가) 각 문서 에 대해 scoreDetails 메타데이터 필드 생성합니다. scoreDetails 필드 에는 최종 순위에 대한 정보가 포함되어 있습니다.
참고
scoreDetails 를 true로 설정하다 $score 가 각 문서 에 대해 scoreDetails 메타데이터 필드 설정하지만 scoreDetails 메타필드를 자동으로 출력하지는 않습니다.
scoreDetails 메타데이터 필드 보려면 다음 중 하나를 수행해야 합니다.
$score다음에$project단계를 사용하여scoreDetails필드 프로젝트.$score다음에$addFields단계를 사용하여 파이프라인 출력에scoreDetails필드 추가합니다.
scoreDetails 필드 에는 다음과 같은 하위 필드가 포함되어 있습니다.
필드 | 설명 |
|---|---|
| 계산된 점수입니다. |
|
|
| 가중치가 적용되지 않은 원시(정규화되지 않은) 점수입니다. |
| 정규화 값 'none', 'sigmoid', 'minMaxScaler' 중 하나입니다. |
| 입력 파이프라인 의 가중치로, [0,1] 범위 내에 있어야 합니다. |
| 문자열 형식의 |
| 빈 배열 |
경고
MongoDB scoreDetails에 대한 특정 출력 형식을 보장하지 않습니다.
예시 들어, 다음 코드 블록은 $add 표현식 있는 $score 작업에 대한 scoreDetails 필드 보여줍니다.
{ _id: ObjectId('55f5a192d4bede9ac365b257'), scoreDetails: { value: 0.5, description: 'the score calculated from multiplying a weight in the range [0,1] with either a normalized or nonnormalized value:', rawScore: 145, normalization: 'sigmoid', weight: 0.5, expression: '{ string: { $add: [ 'field', 'myField' ] } }', details: [] } },