Advanced Filters

By default, all conditions within a single filter are combined using the "AND" operator. An example for a filter can be:

{
  "filter": {
    "_id": {
      "like": "877"
    },
    "sub_type": {
      "not": 30
    }
  },
  "limit": 10,
  "page": 0
}

This filter will locate only result where the "_id" is like 877 AND the "sub_type" is not 30.

For more complex filtering, BioT offers advanced filters that combine basic filters using logical operators.

Create an advanced filter by adding a second filter and joining it with one of the following logical operators:

  • $AND
  • $OR
  • $NOT

You can use as many logical operators as you want in a filter! No limits here.

Examples

Locate results where the "_id" is like 877 OR the "sub_type" is not 30.

{
  "filter": {
    "_id": {
      "like": "877"
    },
    "$OR":{
      "filter": {
         "sub_type": {
     			 "not": 30
    	   }
      }
    }
  },
  "limit": 10,
  "page": 0
}

Locate results with creation time after "2000-01-01T00:00:00.000Z" OR results that have a "service_state" NULL AND name like "Demo_Device" AND "address" equals to "USA"

{
  "filter": {
    "creationTime": {
      "from": "2000-01-01T00:00:00.000Z"
    },
    "$OR": {
      "filter": {
        "service_state": {
          "isNull": true
        },
        "$AND": {
          "filter": {
            "name": {
              "like": "Demo_Device"
            },
            "address": {
              "eq": "USA"
            }
          }
        }
      }
    }
  },
  "limit": 10,
  "page": 0
}