---
title: "Or"
description: "Learn how to use the 'or' condition to test logical expressions and configure JSON schemas effectively. (Gitana 4.0)"
product: "Gitana"
version: "4.0"
url: "/documentation/gitana/4.0/engine/behaviors/conditions/or"
---

# Or

The `or` condition tests whether at least one of multiple sub-conditions is true. This joins the sub-conditions together in a logical OR.

## JSON Schema

```
{
    "title": "Or",
    "properties": {
        "conditions": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "config": {
                        "type": "object"
                    }
                }
            }
        }
    }
}
```

## Example #1

Suppose you wanted a condition to evaluate if:

- a node has `published` set to `true` OR
- a node's type is `my:article`

The condition could be written like this:

```
{
    "type": "or",
    "config": {
        "conditions": [{
            "type": "propertyEquals",
            "config": {
                "property": "published",
                "value": true
            }
        }, {
            "type": "typeEquals",
            "config": {
                "type": "my:article"
            }
        }]
    }

}
```

## Example #2

You can also nest `or` and `and` to form composite checks.

Suppose you wanted a condition to evaluate if:

- a node has `published` set to `true` AND the node's type is `my:article` OR
- a node has `published` set to `false` AND the node's type is `my:press-release`

The condition could be written like this:

```
{
    "type": "or",
    "config": {
        "conditions": [{
            "type": "and",
            "config": {
                "conditions": [{
                    "type": "propertyEquals",
                    "config": {
                        "property": "published",
                        "value": true
                    }
                }, {
                    "type": "typeEquals",
                    "config": {
                        "type": "my:article"
                    }
                }]
            }
        }, {
            "type": "and",
            "config": {
                "conditions": [{
                    "type": "propertyEquals",
                    "config": {
                        "property": "published",
                        "value": false
                    }
                }, {
                    "type": "typeEquals",
                    "config": {
                        "type": "my:press-release"
                    }
                }]
            }
        }]
    }
}
```

## Example #3

Here is another nesting example.

Suppose you wanted a condition to evaluate if:

- a node is published
- a node's type is either `my:article` or `my:press-release`

The condition could be written like this:

```
{
    "type": "and",
    "config": {
        "conditions": [
            "type": "propertyEquals",
            "config": {
                "property": "published",
                "value": true
            }
        }, {
            "type": "or",
            "config": {
                "conditions": [{
                    "type": "propertyEquals",
                    "config": {
                        "property": "published",
                        "value": false
                    }
                }, {
                    "type": "typeEquals",
                    "config": {
                        "type": "my:press-release"
                    }
                }]
            }
        }]
    }
}
```
