- Enclosing class:
- NormalizationOperation
public static interface NormalizationOperation.Operation
Identifies what type of operation to perform.
**copy** - Copies the value of the `source_field` to the `destination_field` field. If the `destination_field`
already exists, then the value of the `source_field` overwrites the original value of the `destination_field`.
**move** - Renames (moves) the `source_field` to the `destination_field`. If the `destination_field` already
exists, then the value of the `source_field` overwrites the original value of the `destination_field`. Rename is
identical to copy, except that the `source_field` is removed after the value has been copied to the
`destination_field` (it is the same as a _copy_ followed by a _remove_).
**merge** - Merges the value of the `source_field` with the value of the `destination_field`. The
`destination_field` is converted into an array if it is not already an array, and the value of the `source_field`
is appended to the array. This operation removes the `source_field` after the merge. If the `source_field`
does not exist in the current document, then the `destination_field` is still converted into an array (if it is
not an array already). This is ensures the type for `destination_field` is consistent across all documents.
**remove** - Deletes the `source_field` field. The `destination_field` is ignored for this operation.
**remove_nulls** - Removes all nested null (blank) leif values from the JSON tree. `source_field` and
`destination_field` are ignored by this operation because _remove_nulls_ operates on the entire JSON tree.
Typically, `remove_nulls` is invoked as the last normalization operation (if it is inoked at all, it can be
time-expensive).