Cosmocloud Build Documentation
DocumentationTutorials
  • Welcome to Cosmocloud
  • Getting Started
    • 1. Organisations
    • 2. Projects
    • 3. Connect your Database
    • 4. Create Database Models
    • 5. Create APIs
    • 6. Testing Free Tier APIs
  • Free Tier
    • Connecting with MongoDB Data APIs
  • Templates
    • CRUD APIs
    • Entity Search APIs
    • Fetch / Upload Media APIs
  • Examples - How To?
    • Making an external API call
    • Reusable Flows - SubFlows
    • Creating Custom Error Responses
    • Flow Builder - Building Conditional Logics
    • Flow Builder - Utilising Loops
    • Creating Dynamic Queries
    • Accessing Auth Tokens in APIs
    • How to upload/download media in Object Storage
  • Resources
    • APIs
      • Checking Logs
    • SubFlows
    • Models
      • Building Models
    • Environments
      • Environment Tier Types
    • Secrets
      • Custom Secrets
    • Databases
    • Releases
    • Vector Search
      • Create a Vector Search Index
      • Edit a Vector Search Index
      • Delete a Vector Search Index
    • Document Search
      • Full Text Search
        • Concepts
          • Indexing in full-text search
          • Data processing using Analyzers
        • Create a Search Index
        • Creating a Custom Analyzer
        • Full Text Search FAQ
      • Vector Search
    • Object Storage
  • Flow Builder
    • Node Types
      • Trigger Nodes
        • HTTP Response
      • Conditional Nodes
        • If Else
        • If Else V2
        • Switch Case
      • Crypto Nodes
        • PBKDF2 Hmac Hash
      • Debug Node
      • Database Nodes
        • Delete One
        • Delete Many
        • Fetch By ID
        • Find One
        • Find Many
        • Insert One
        • Insert Many
        • List Records
        • Run Aggregation Pipeline
        • Update One
        • Update by ID
        • Update Many
      • External Nodes
        • Fire Events (SQS)
        • API Call
        • Delete storage objects
        • Execute SubFlow
        • Get Presigned URL
        • Post Presigned URL
        • Send EMAIL (SES)
        • Send SMS (SNS)
      • Loop Nodes
        • For loop
        • While loop
      • Variable Nodes
        • Arrays
          • Append array
          • Contains
          • Check array empty
          • Extend array
          • Get Array Item
          • Length of array
          • Reverse array
          • Sort array
        • Date and Time
          • Set current datetime
        • Strings
          • Append String
          • Concat Strings
          • Convert to String
          • Length of String
          • Slice String
          • Split String
          • String Operations
          • To Lower
          • To Upper
          • Trim String
        • Mathematical
          • Add Variable
          • Complex Math Expr
          • Decrement Variable
          • Divide Variable
          • Increment Variable
          • Multiply Variable
          • Subtract Variable
        • JSON
          • Build JSON Object
          • Merge JSON Objects
          • Object to String
          • Update JSON Object
        • Special
          • Build Map
          • Set Variable
          • Exists Check
    • Node name
    • CQL - Cosmocloud Query Language
      • Building Expressions
        • $abs
        • $add
        • $addDate
        • $arrayElemAt
        • $avg
        • $buildDateTime
        • $buildMap
        • $ceil
        • $cond
        • $divide
        • $floor
        • $getDay
        • $getHour
        • $getMinute
        • $getMonth
        • $getSecond
        • $getYear
        • $ifNull
        • $max
        • $min
        • $mod
        • $multiply
        • $pow
        • $subtract
        • $sqrt
      • Building Conditions
        • Compound Operators
          • $and
          • $or
        • Conditional Operators
          • $eq
          • $gt
          • $gte
          • $lt
          • $lte
          • $neq
      • Magical Autocomplete
  • Advanced Guide
    • Configuring Authentication
      • SSO Providers
        • AWS Cognito
      • Authentication Concepts
    • MongoDB Query Language
      • Limitations
    • Performance Considerations
      • Instant Deployments
  • User Management
  • Billing and Payments
    • Billing Portal
  • Help & Support
  • References
    • Change log
    • Available Cloud & Regions
Powered by GitBook
On this page
  • Properties Panel
  • Usage
  • Expression Format
  • Returns
  • Example
  • Best Practices
  1. Flow Builder
  2. Node Types
  3. Variable Nodes
  4. Mathematical

Complex Math Expr

PreviousAdd VariableNextDecrement Variable

Last updated 9 months ago

Complex Math Expr node is designed to evaluate complex mathematical expressions and store the result in a specified variable. This node allows for more sophisticated calculations than simple arithmetic operations.

Properties Panel

Field

Description

Required

Node name

true

Variable Name

The name of the variable where the result item will be stored

true

Value

A JSON object representing the mathematical expression to be evaluated

true

Usage

  1. Specify a variable name where the result will be stored.

  2. Define the expression using a JSON object with supported operators and functions.

Expression Format

The expression is defined as a JSON object where each key is an operator or function, and its value is an array of operands or arguments. The node supports a wide range of operations as defined in the documentation.

Example:

{
  "$multiply": [
    {
      "$add": ["$.variables.base_price", "$.variables.tax_amount"]
    },
    {
      "$subtract": [1, "$.variables.discount_rate"]
    }
  ]
}

Returns

The node stores the result of the expression evaluation in the specified variable. You can access this using Magical Autocomplete (e.g., $.variables.<variable_name>) in any node below this node.

Example

Let's say you want to calculate a complex price adjustment with conditions:

  1. Set Variable name to adjusted_price

  2. Set Expression to:

    {
      "$multiply": [
        "$.variables.base_price",
        {
          "$cond": [
            {
              "$.variables.loyalty_points": {
                "$gt": 1000
              }
            },
            0.9,
            1
          ]
        }
      ]
    }

    This will apply a 10% discount if the customer has more than 1000 loyalty points, and store the result in the adjusted_price variable.

Best Practices

  • Refer to the CQL documentation for the full list of available operators and functions.

  • Be mindful of the data types you're working with, especially when using type-specific operators or functions.

  • Also note that the expression can have only one operator at one level. For example:

    {
      "$multiply": [...], -> only one
      "$add": [...],  -> this is not allowed
    }

CosmoCloud Query Language (CQL)
Node Name