Docs Menu
Docs Home
/ /

$score (agregación)

Nuevo en la versión 8.2.

$score

$score Calcula y devuelve una nueva puntuación como metadatos. Opcionalmente, normaliza las puntuaciones de entrada, por defecto en un rango entre cero y uno.

La etapa tiene la siguiente sintaxis:

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

$score toma los siguientes campos:

Campo
Tipo
Descripción

score

expresión

Calcula un nuevo valor a partir de las puntuaciones de entrada y almacena el valor en el $meta Palabra score clave. Devuelve un error para entradas no numéricas.

scoreDetails

Booleano

falseEl valor predeterminado es. Especifica si $score calcula y rellena el $scoreDetails campo de metadatos para cada documento de salida. Consulte la sección "scoreDetails" para obtener más información sobre este campo.

normalization

String

Opcional. Normaliza la puntuación en el rango de 0 a 1. El valor puede ser:

  • none - No se normaliza.

  • sigmoid - Aplica la siguiente $sigmoid expresión:

    1 / (1 + e^-x)

    Aquí, x es el puntaje a normalizar.

    Si se omite, es por defecto none.

  • minMaxScaler - para aplicar la $minMaxScaler función de ventana:

    (s - min_s) / (max_s - min_s)

    Donde:

    • s es la puntuación.

    • min_s es la puntuación mínima.

    • max_s es la puntuación máxima.

weight

Double

Opcional. Número por el que multiplicar la expresión score después de la normalización.

Los documentos de salida de un $score son los mismos que los documentos de entrada, pero incluyen una puntuación calculada adicional como metadatos.

Si especifica varias etapas en $score la canalización, la última etapa de la canalización anula $score $score los metadatos de puntuación de las etapas anteriores.

Si establece scoreDetails en true, $score crea un campo de metadatos scoreDetails para cada documento. El campo scoreDetails contiene información sobre la clasificación final.

Nota

Cuando se establece scoreDetails en true, $score establece el campo de metadatos scoreDetails para cada documento, pero no genera automáticamente el metacampo scoreDetails.

Para ver el campo de metadatos scoreDetails, debe:

  • Utilice una etapa $project después $score de para proyectar el scoreDetails campo

  • Utilice una etapa $addFields después $score de para agregar el scoreDetails campo a la salida de su canalización

El campo scoreDetails contiene los siguientes subcampos:

Campo
Descripción

value

La puntuación calculada.

description

Una descripción en formato de cadena que explica cómo la operación $score Metrics calcula la puntuación final.

rawScore

La puntuación bruta (no normalizada) no ponderada.

normalization

Uno de los siguientes valores de normalización: "ninguno", "sigmoide", "minMaxScaler".

weight

El peso de la tubería de entrada, que debe estar en el rango [0,1].

expression

El valor de $score.score en formato de cadena.

details

Una matriz vacía, ya que $score no puede aceptar ninguna canalización de entrada.

Advertencia

MongoDB no garantiza ningún formato de salida específico para scoreDetails.

Por ejemplo, los siguientes bloques de código muestran el campo scoreDetails para una operación $score con una expresión $add:

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

Volver

$sample

En esta página