MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /

$score (집계)

버전 8.2에 추가 되었습니다.

$score

$score 새 점수를 계산하고 메타데이터 로 반환합니다. 또한 선택적으로 입력 점수를 기본값 으로 0에서 1 사이의 범위 로 정규화합니다.

이 단계에는 다음 구문이 있습니다.

{
$score: {
score: <expression>,
scoreDetails: <boolean>,
normalization: "none|sigmoid|minMaxScaler",
weight: <expression>
}
}

$score 은(는) 다음 필드를 사용합니다.

필드
유형
설명

score

표현식

입력 점수에서 새 값을 계산하고 키워드$meta score 에 값을 저장합니다. 숫자가 아닌 입력에 대한 오류를 반환합니다.

scoreDetails

부울

false기본값은 입니다.$score$scoreDetails 각 출력 문서 에 대해 메타데이터 필드 계산하고 채울지 여부를 지정합니다. 이 필드 에 대한 자세한 내용은 점수 세부 정보를 참조하세요.

normalization

문자열

선택 사항. 점수를 0 ~ 1 범위 로 정규화합니다. 값은 다음과 같습니다.

  • none - 정규화하지 않습니다.

  • sigmoid - 다음 $sigmoid 표현식 적용합니다.

    1 / (1 + e^-x)

    여기서 x 은 정규화할 점수입니다.

    생략하는 경우 기본값은 none입니다.

  • minMaxScaler -$minMaxScaler창 함수를 적용 :

    (s - min_s) / (max_s - min_s)

    구제척으로:

    • s 는 점수입니다.

    • min_s 는 최소 점수입니다.

    • max_s 는 최대 점수입니다.

weight

Double

선택 사항. 정규화 후 score 표현식 에 곱할 숫자입니다.

$score 의 출력 문서는 입력 문서와 동일하지만 추가 계산된 점수를 메타데이터 로 포함합니다.

파이프라인 에 여러 $score 단계를 지정하는 경우 파이프라인 의 마지막 $score 단계가 이전 $score 단계의 점수 메타데이터 재정의합니다.

scoreDetails 을(를) true(으)로 설정하다 $score 이(가) 각 문서 에 대해 scoreDetails 메타데이터 필드 생성합니다. scoreDetails 필드 에는 최종 순위에 대한 정보가 포함되어 있습니다.

참고

scoreDetailstrue로 설정하다 $score 가 각 문서 에 대해 scoreDetails 메타데이터 필드 설정하지만 scoreDetails 메타필드를 자동으로 출력하지는 않습니다.

scoreDetails 메타데이터 필드 보려면 다음 중 하나를 수행해야 합니다.

  • $score 다음에 $project 단계를 사용하여 scoreDetails 필드 프로젝트.

  • $score 다음에 $addFields 단계를 사용하여 파이프라인 출력에 scoreDetails 필드 추가합니다.

scoreDetails 필드 에는 다음과 같은 하위 필드가 포함되어 있습니다.

필드
설명

value

계산된 점수입니다.

description

$score operationMetrics가 최종 점수를 계산하는 방법을 설명하는 문자열 형식의 설명입니다.

rawScore

가중치가 적용되지 않은 원시(정규화되지 않은) 점수입니다.

normalization

정규화 값 'none', 'sigmoid', 'minMaxScaler' 중 하나입니다.

weight

입력 파이프라인 의 가중치로, [0,1] 범위 내에 있어야 합니다.

expression

문자열 형식의 $score.score 값입니다.

details

빈 배열 $score 은 입력 파이프라인을 사용할 수 없습니다.

경고

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: []
}
},

돌아가기

$sample

이 페이지의 내용