Adicionar campos calculados
Nesta página
Os campos calculados permitem criar novos campos em documentos combinando valores de colunas de banco de dados existentes usando expressões JavaScript. Os campo calculados são avaliados cada vez que uma linha é processada durante uma tarefa de sincronização.
Antes de começar
Para criar um campo calculado, você deve definir uma regra de mapeamento.
Para criar regras de mapeamento, consulte as seguintes páginas:
Sobre esta tarefa
A expressão de campo calculadas acessam valores da linha do reconhecimento de data center de origem atual utilizando a sintaxe columns["<COLUMN_NAME>"]
.
Ao definir campos calculados e personalizar campos de ID, o Relational Migrator mostra um tipo de dados inicial de default. Quando você executa uma tarefa de sincronização, o Relational Migrator atualiza esse tipo de dados.
Passos
Na tela Mapping, clique em um nome de tabela ou collection no painel Schema model ou na exibição do diagrama.
Adicione uma nova regra de mapeamento ou edite uma regra de mapeamento existente.
Clique no ícone + à direita da etiqueta All fields .
Defina um nome para o novo campo na caixa de texto Field Name .
Defina uma expressão JavaScript válida para o novo campo na caixa de texto
Value expression
.Clique em Done.
Clique em Save and close.
O novo campo estará visível no MongoDB após a próxima execução da tarefa de sincronização.
Exemplos
Os exemplos a seguir mostram expressões JavaScript que você pode usar em campos calculados:
Concatenar strings
Combine duas colunas em um único campo.
O exemplo a seguir concatena valores de string das colunas firstName
e lastName
.
expressão:
columns["firstName"] + ' ' + columns["lastName"]
Entrada:
coluna | Valor |
---|---|
firstName | John |
lastName | Smith |
Saída:
"John Smith"
divisão Strings
Divisão os valores da coluna em uma array com base em um caractere especificado.
O exemplo a seguir faz a divisão da coluna fullName
em uma array usando um caractere de espaço como delimitador e retorna o primeiro elemento da array.
expressão:
columns["fullName"].split(' ')[0]
Entrada:
coluna | Valor |
---|---|
fullName | John Doe |
Saída:
"John"
Substituir strings
Aplique padrões regex para substituir valores de string em uma coluna.
O exemplo abaixo executa uma pesquisa regex sem distinção entre maiúsculas e minúsculas na coluna fullName
para a string smith
. Se uma correspondência for encontrada, a expressão substituirá a string correspondente por Doe
.
expressão:
columns["fullName"].replace(/smith/i, "Doe")
Entrada:
coluna | Valor |
---|---|
fullName | John Smith |
Saída:
"John Doe"
Verificar valores de string
Retorne verdadeiro ou falso com base no fato de a coluna conter um valor de string.
O exemplo a seguir retorna true
se o valor na coluna fullName
incluir a string Smith
. Se a coluna fullName
não incluir a string Smith
, a expressão retornará false
.
expressão:
columns["fullName"].includes("Smith")
Entrada:
coluna | Valor |
---|---|
fullName | John Smith |
Saída:
true
Realizar operações matemáticas
Execute operações matemáticas em valores de coluna.
O exemplo a seguir multiplica os valores das colunas col1
e col2
.
expressão:
columns["col1"] * columns["col2"]
Entrada:
coluna | Valor |
---|---|
coll1 | 3 |
coll2 | 2 |
Saída:
6
Atribuir valores com base em condições lógicas
Atribuir valores de coluna com base em condições lógicas.
O exemplo a seguir retorna yes
se o valor de col1
for 3
, e no
se col1
for um valor diferente de 3
.
expressão:
columns["col1"] === 3 ? "yes" : "no"
Entrada:
coluna | Valor |
---|---|
coll1 | 3 |
Saída:
yes
Extrair valores JSON
Acesse dados armazenados como tipo de dados JSON com expressões de campo calculadas. Exige colunas de tipo de dados JSON (Postgres).
O exemplo a seguir retorna o valor do campo state
incorporado a partir de valores na coluna Employee
.
expressão:
columns["Employee"].Address.state
Entrada:
{ Employee: { name: "Mark", Address: { state: "California" } } }
Saída:
"California"
Acessar elementos de array
Acesse os dados armazenados como tipo de dados de matriz com expressões de campos calculados. Requer colunas de tipo de dados de array (Postgres ou MySQL).
O exemplo seguinte retorna o segundo elemento dos valores na coluna myArray
.
expressão:
columns["myArray"][1]
Entrada:
coluna | Valor |
---|---|
myArray | [ "a", "b", "c" ] |
Saída:
"b"
Analisar datas
Analisar uma string de data formatada em ISO8601 em uma data.
O exemplo a seguir converte valores de string da coluna dateAsString
em datas.
expressão:
new Date(columns["dateAsString"])
Entrada:
coluna | Valor |
---|---|
dateAsString | "2009/02/11" |
Saída:
2009-02-11T0:00:00Z