Operators #
Filters in Koncorde are constituted of clauses and operators.
In this section, you will find an exhaustive listing of all the available operators.
and #
The and filter takes an array of filter objects, combining them with AND operators.
Given the following documents: #
{
firstName: 'Grace',
lastName: 'Hopper',
city: 'NYC',
hobby: 'computer'
},
{
firstName: 'Ada',
lastName: 'Lovelace',
city: 'London',
hobby: 'computer'
}The following filter validates the first document: #
{
and: [
{
equals: {
city: 'NYC'
}
},
{
equals: {
hobby: 'computer'
}
}
];
}or #
The or filter takes an array containing filter objects, combining them using OR operators.
Given the following documents: #
{
firstName: 'Grace',
lastName: 'Hopper',
city: 'NYC',
hobby: 'computer'
},
{
firstName: 'Ada',
lastName: 'Lovelace',
city: 'London',
hobby: 'computer'
},
{
firstName: 'Marie',
lastName: 'Curie',
city: 'Paris',
hobby: 'radium'
}The following filter validates the first two documents: #
{
or: [
{
equals: {
city: 'NYC'
}
},
{
equals: {
city: 'London'
}
}
];
}not #
The not filter omits the matching data.
Given the following documents: #
{
firstName: 'Grace',
lastName: 'Hopper',
city: 'NYC',
hobby: 'computer'
},
{
firstName: 'Ada',
lastName: 'Lovelace',
city: 'London',
hobby: 'computer'
}The following filter validates the first document: #
{
not: {
equals: {
city: 'London';
}
}
}bool #
Returns documents matching a combination of filters.
This operator accepts the following attributes:
mustall listed conditions must betruemust_notall listed conditions must befalseshouldone of the listed condition must betrueshould_notone of the listed condition must befalse
Each one of these attributes are an array of filter objects.
Given the following documents: #
{
firstName: 'Grace',
lastName: 'Hopper',
age: 85,
city: 'NYC',
hobby: 'computer'
},
{
firstName: 'Ada',
lastName: 'Lovelace',
age: 36
city: 'London',
hobby: 'computer'
},
{
firstName: 'Marie',
lastName: 'Curie',
age: 55,
city: 'Paris',
hobby: 'radium'
}The following filter validates the second document: #
{
bool: {
must : [
{
in : {
firstName : ['Grace', 'Ada']
}
},
{
range: {
age: {
gte: 36,
lt: 85
}
}
}
],
'must_not' : [
{
equals: {
city: 'NYC'
}
}
],
should : [
{
equals : {
hobby : 'computer'
}
},
{
exists : {
field : 'lastName'
}
}
]
}
}