Nuevo en la versión 8.2.
Definición
Sintaxis
La etapa tiene la siguiente sintaxis:
{ $score: { score: <expression>, scoreDetails: <boolean>, normalization: "none|sigmoid|minMaxScaler", weight: <expression> } }
Campos
$score requiere los siguientes campos:
Campo | Tipo | Descripción | ||
|---|---|---|---|---|
| expresión | Calcula un nuevo valor a partir de las puntuaciones de entrada y almacena el valor en el | ||
| Booleano | El valor por defecto es | ||
| String | opcional. Normaliza la puntuación al rango de
| ||
| Double | opcional. Número para multiplicar la expresión |
Comportamiento
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.
scoreDetails
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
$projectdespués de$scorepara proyectar el camposcoreDetailsusa una etapa
$addFieldsdespués de$scorepara agregar el camposcoreDetailsa la salida del pipeline
El campo scoreDetails contiene los siguientes subcampos:
Campo | Descripción |
|---|---|
| La puntuación calculada. |
| Una descripción en formato de string que explica cómo los operationMetrics de |
| La puntuación bruta (no normalizada) no ponderada. |
| Uno de los siguientes valores de normalización: "ninguno", "sigmoide", "minMaxScaler". |
| El peso del pipeline de entrada, que debe estar en el rango [0,1]. |
| El valor de |
| Un arreglo vacío, ya que |
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: [] } },