Version: 4.2
Smart Query Conditions
When you want to make complex queries, you can easily end up with a lot of boilerplate code full of curly brackets:
For AND condition with single field, you can also do this:
Another way to do this by including the operator in your keys:
For comparison operators, you can also use their mathematical symbols:
Keys with operators like this will cause TypeScript errors as there is no way to support them on the typings side. They are still supported, but you will need to cast the condition to
any
to use them.
There is also shortcut for $in
- simply provide array as value and it
will be converted automatically:
For primary key lookup, you can provide the array directly to em.find()
:
#
List of supported operators#
Comparisonoperator | name | description |
---|---|---|
$eq | equals | Matches values that are equal to a specified value. |
$gt | greater | Matches values that are greater than a specified value. |
$gte | greater or equal | Matches values that are greater than or equal to a specified value. |
$in | contains | Matches any of the values specified in an array. |
$lt | lower | Matches values that are less than a specified value. |
$lte | lower or equal | Matches values that are less than or equal to a specified value. |
$ne | not equal | Matches all values that are not equal to a specified value. |
$nin | not contains | Matches none of the values specified in an array. |
$like | like | Uses LIKE operator |
$re | regexp | Uses REGEXP operator |
#
Logicaloperator | description |
---|---|
$and | Joins query clauses with a logical AND returns all documents that match the conditions of both clauses. |
$not | Inverts the effect of a query expression and returns documents that do not match the query expression. |
$or | Joins query clauses with a logical OR returns all documents that match the conditions of either clause. |