Creating an OJAI Query Condition Using a JSON String
You can create a query condition using OJAI syntax to specify the condition in JSON format. This is the preferred approach for the Node.js, Python, C#, and Go OJAI clients.
The following example shows you how to create the following query condition using the syntax:
(a.b.[0].boolean == false && (a.c.d != 5 || a.b[1].decimal > 1 || a.b[1].decimal < 10))
    This is a Java string for the condition:
String jc = new String(
    '{ \
        "$and":[ \
            {"$eq":{"a.b[0].boolean":false}}, \
            {"$or":[ \
                {"$ne":{"a.c.d":5}}, \
                {"$gt":{"a.b[1].decimal":1}}, \
                {"$lt":{"a.b[1].decimal":10}} \
            ]} \
        ]} \
    )';
                    Pass the string to the Query.where method. See the Java - OJAI Query Condition in JSON Format example at Querying with Conditions for a complete Java code example.
This is a Node.js JSON object for the condition:
query = 
    {"$where":
        {"$and":[ 
            {"$eq":{"a.b[0].boolean":false}}, 
            {"$or":[                 
                {"$ne":{"a.c.d":5}}, 
                {"$gt":{"a.b[1].decimal":1}}, 
                {"$lt":{"a.b[1].decimal":10}} 
            ]}
        ]}
    };
                    See the Node.js - OJAI Query Condition in JSON Format example at Querying with Conditions for a complete Node.js code example.
This is a Python dictionary for the condition:
query = 
    {"$where":
        {"$and":[ 
            {"$eq":{"a.b[0].boolean":false}}, 
            {"$or":[                 
                {"$ne":{"a.c.d":5}}, 
                {"$gt":{"a.b[1].decimal":1}}, 
                {"$lt":{"a.b[1].decimal":10}} 
            ]}
        ]}
    } 
                    See the Python - OJAI Query Condition in JSON Format example at Querying with Conditions for a complete Python code example.
This is a JSON string for the condition:
var query =
    @"{""$where"":" +
        @"{""$and"":[" +
            @"{""$eq"":{""a.b[0].boolean"":false}}," + 
            @"{""$or"":[" +                 
                @"{""$ne"":{""a.c.d"":{""$numberInt"":""5""}}}," +
                @"{""$gt"":{""a.b[1].decimal"":{""$decimal"":""1""}}}," +
                @"{""$lt"":{""a.b[1].decimal"":{""$decimal"":""10""}}}" +
            @"]}" +
        @"]" +
   @"}";
                This is a JSON string for the condition:
query := "{\"$where\": +
               "{\"$and\":[" +
                      "{\"$eq\":{\"a.b[0].boolean\":false}}," +
                      "{\"$or\":[" +
                            "{\"$ne\":{\"a.c.d\":5}}," +
                            "{\"$gt\":{\"a.b[1].decimal\":1}}," +
                            "{\"$lt\":{\"a.b[1].decimal\":10}}" +
                      "]}" +
               "]}" +
          "}"
                To learn about the complete OJAI syntax for query conditions, see OJAI Query Condition Syntax.