Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$score (agregación)

Novedad 8.2 en la versión.:

$score

$score calcula y devuelve una nueva puntuación como metadatos. También normaliza opcionalmente las puntuaciones de entrada, por defecto a 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 los puntajes de entrada y almacena el valor en la palabra clave $meta score. Devuelve un error para las entradas no numéricas.

scoreDetails

Booleano

falseEl valor predeterminado es. Especifica si $score calcula y completa el $scoreDetails campo de metadatos para cada documento de salida. Consulte scoreDetails 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 los mismos 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 configuras 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: []
}
},