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 toma 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 |
| ||
| String | Opcional. Normaliza la puntuación en el rango de
| ||
| Double | Opcional. Número por el que multiplicar la expresión |
Comportamiento
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.
Detalles de la puntuación
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
$projectdespués$scorede para proyectar elscoreDetailscampoUtilice una etapa
$addFieldsdespués$scorede para agregar elscoreDetailscampo a la salida de su canalización
El campo scoreDetails contiene los siguientes subcampos:
Campo | Descripción |
|---|---|
| La puntuación calculada. |
| Una descripción en formato de cadena que explica cómo la operación |
| La puntuación bruta (no normalizada) no ponderada. |
| Uno de los siguientes valores de normalización: "ninguno", "sigmoide", "minMaxScaler". |
| El peso de la tubería de entrada, que debe estar en el rango [0,1]. |
| El valor de |
| Una matriz vacía, 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: [] } },