Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Agregar Campos Calculados

Los campos calculados te permiten crear nuevos campos en tus documentos combinando valores de columnas de base de datos existentes mediante expresiones JavaScript. Los campos calculados se evalúan cada vez que se procesa una fila durante una tarea de migración.

Para crear un campo calculado, debes definir una regla de asignación.

Para crear reglas de mapeo, consulta las siguientes páginas:

  • Creación de reglas a partir de mapeos sugeridos

  • Crear reglas de asignación

  • Crear reglas de asignación

Las expresiones de los campos calculados acceden a valores de la fila de la base de datos de origen actual utilizando la sintaxis columns["<COLUMN_NAME>"].

Al definir Campos Calculados y Personalizar Campos de ID, Relational Migrator muestra un tipo de dato inicial de default. Cuando ejecutes un trabajo de migración, el Relational Migrator actualizará este tipo de datos.

  1. Desde la pantalla Mapping, haz clic en un nombre de tabla o colección en el panel Schema model o en la vista de diagrama.

  2. Agregar una nueva regla de asignación o editar una regla de asignación existente.

  3. Haz clic en el icono + a la derecha de la etiqueta All fields.

  4. Define un nombre para el nuevo campo en el cuadro de texto Field Name.

  5. Define una expresión válida de JavaScript para el nuevo campo en el cuadro de texto Value expression.

  6. Haga clic en Done.

  7. Haga clic en Save and close.

El nuevo campo será visible en MongoDB después de ejecutar tu próxima tarea de migración.

Los siguientes ejemplos muestran expresiones JavaScript que puedes usar en campos calculados:

Combina dos columnas en un único campo.

El siguiente ejemplo concatena valores de string de las columnas firstName y lastName.

expresión:

columns["firstName"] + ' ' + columns["lastName"]

Entrada:

columna
Valor

firstName

John

lastName

Smith

Salida:

"John Smith"

Divide los valores de la columna en un arreglo según un carácter especificado.

El siguiente ejemplo divide la columna fullName en un arreglo usando un espacio como delimitador y devuelve el primer elemento del arreglo.

expresión:

columns["fullName"].split(' ')[0]

Entrada:

columna
Valor

fullName

John Doe

Salida:

"John"

Aplica patrones de expresiones regulares para reemplazar valores de string en una columna.

El siguiente ejemplo realiza una búsqueda insensible a mayúsculas y minúsculas con una expresión regular en la columna fullName para la string smith. Si se encuentra una coincidencia, la expresión reemplaza la string coincidente por Doe.

expresión:

columns["fullName"].replace(/smith/i, "Doe")

Entrada:

columna
Valor

fullName

John Smith

Salida:

"John Doe"

Devuelve "true" o "false" en función de si una columna contiene un valor de string.

El siguiente ejemplo devuelve true si el valor en la columna fullName incluye la string Smith. Si la columna fullName no incluye la cadena Smith, la expresión devuelve false.

expresión:

columns["fullName"].includes("Smith")

Entrada:

columna
Valor

fullName

John Smith

Salida:

true

Realice operaciones matemáticas en los valores de columna.

El siguiente ejemplo multiplica los valores de las columnas col1 y col2.

expresión:

columns["col1"] * columns["col2"]

Entrada:

columna
Valor

coll1

3

coll2

2

Salida:

6

Asignar valores de columna basados en condiciones lógicas.

El siguiente ejemplo devuelve yes si el valor de col1 es 3, y no si col1 es un valor diferente a 3.

expresión:

columns["col1"] === 3 ? "yes" : "no"

Entrada:

columna
Valor

coll1

3

Salida:

yes

Accede a datos almacenados como tipo de datos JSON con expresiones de campos calculados. Requiere columnas de tipo de datos JSON (Postgres).

El siguiente ejemplo devuelve el valor del campo integrado state a partir de los valores de la columna Employee.

expresión:

columns["Employee"].Address.state

Entrada:

{
Employee: {
name: "Mark",
Address: {
state: "California"
}
}
}

Salida:

"California"

Acceso a datos almacenados como tipo de datos de arreglo con expresiones de campos calculados. Requiere columnas de tipo de datos arreglo (Postgres o MySQL).

El siguiente ejemplo devuelve el segundo elemento de los valores de la columna myArray.

expresión:

columns["myArray"][1]

Entrada:

columna
Valor

myArray

[ "a", "b", "c" ]

Salida:

"b"

Analiza una string de fecha formateada en ISO8601 en una fecha.

El siguiente ejemplo convierte los valores de string de la columna dateAsString en fechas.

expresión:

new Date(columns["dateAsString"])

Entrada:

columna
Valor

dateAsString

"2009-02-11"

Salida:

2009-02-11T0:00:00Z

Volver

Campos calculados

En esta página