Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 requiere 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 clave score. Devuelve un error para las entradas no numéricas.

scoreDetails

Booleano

El valor por defecto es false. Especifica si $score calcula y completa el campo de metadatos $scoreDetails para cada documento de salida. Consulta Detalles del puntaje para obtener más información sobre este campo.

normalization

String

opcional. Normaliza la puntuación al rango de 0 a 1. El valor puede ser:

  • none - No se normaliza.

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

    1 / (1 + e^-x)

    Aquí, x es el puntaje a normalizar.

    Si se omite, es por defecto none.

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

    (s - min_s) / (max_s - min_s)

    Dónde:

    • 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 para multiplicar la expresión score después de la normalización.

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

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

Si estableces 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:

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

  • usa una etapa $addFields después de $score para agregar el campo scoreDetails a la salida del pipeline

El campo scoreDetails contiene los siguientes subcampos:

Campo
Descripción

value

La puntuación calculada.

description

Una descripción en formato de string que explica cómo los operationMetrics de $score calculan 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 del pipeline de entrada, que debe estar en el rango [0,1].

expression

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

details

Un arreglo vacío, ya que $score no puede aceptar ninguna pipeline 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