Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this Pagearticle

Table of Contents
maxLevel2
excludeAdditional Resources|Related Links|Related Information

...

Description

Evaluates the expression represented by the given string. The expression can reference document values and pipeline Pipeline parameters.

This is similar to the JavaScript eval().

Note

Using eval() has a significant performance penalty and will slow down a pipeline when the document count increases. Most eval() use cases can be replaced with statically defined expressions, or with a dynamically generated expression library file.


Syntax


Code Block
eval(string)


Examples

Expression: eval(5+2)

Result: 7


Expression: eval(_id < 100)

Result: false (if the value of the pipeline parameter id is greater than 100)

...

Description

Determines whether a value is Not-a-Number (NaN) or not.

This is similar to the JavaScript isNaN.

Syntax


Code Block
isNaN(value)


Examples

Expression: isNaN(42)

Result: false


Expression: isNaN('a')

Result: true


Expression: isNaN('')

Result: false
The empty string is converted to 0 which is not NaN.

jsonPath

Description

Reads the values from the given object that match the given JSONPath. If the path is simple and does not traverse multiple paths through the object hierarchy (such as $parent.child.value), the value will be returned directly or an error will be raised if the path was not found. If the given path branches to cover multiple parts of the object hierarchy (such as $..array), an array will be returned, which may be empty if there were no matches.

Note

This return value of this function is slightly different from the one described here. Instead of returning false if a path is not found, an error will be raised.


Syntax


Code Block
jsonPath(obj, path)


Examples

Expression: This expression will return the "email_address" field in the array of objects at "$SupportTicketDefinition.partners" where the objects have a "type" property with a value of "contact".

Code Block
jsonPath($, "$SupportTicketDefinition.partners[?(value.type=='contact')].email_address")[0]

Where "$" contains:

Code Block
{
  "SupportTicketDefinition": {
    "partners": [
      {
        "type": "contact",
        "email_address": "bob@example.com"
      },
      {
        "type": "emergency",
        "email_address": "alice@example.com"
      }
    ]
  }
}

Result: "bob@example.com"

...