Filtering Data
PulsePI allows you to apply powerful filters to your data queries using the filters array inside the params object.
How Filters Work
filtersmust be an array of objects- Each object is a filter condition:
{ fieldName: value } - You can use MongoDB-style operators (e.g.,
$gt,$lt,$in) for advanced filtering - Multiple filter objects are treated as AND conditions
Filter by Exact Match
Request Example
json
{
"module": "user",
"action": "list",
"params": {
"_fields": ["name", "age"],
"filters": [
{ "age": 20 }
]
}
}➡️ This filters users where age === 20 and returns only name and age.
Response Example
json
{
"status": "success",
"data": [
{
"_id": "6800fa432df5c382263faee5",
"name": "Jhon",
"age": 20
},
{
"_id": "6800fa712df5c382263faee9",
"name": "Jane",
"age": 20
},
{
"_id": "6800fa752df5c382263faeeb",
"name": "Ali",
"age": 20
}
],
"meta": {
"executedAt": "2025-04-18T23:31:26.691Z"
}
}Filter by Comparison Operator
Request Example
json
{
"module": "user",
"action": "list",
"params": {
"_fields": ["name", "age"],
"filters": [
{ "age": { "$gt": 20 } }
]
}
}➡️ This returns users whose age > 20.
Supported Filter Operators
| Operator | Description | Example |
|---|---|---|
| $gt | Greater than | { "age": { "$gt": 25 } } |
| $lt | Less than | { "age": { "$lt": 30 } } |
| $gte | Greater than or equal to | { "age": { "$gte": 18 } } |
| $lte | Less than or equal to | { "age": { "$lte": 60 } } |
| $eq | Equal | { "role": { "$eq": "admin" } } |
| $ne | Not equal | { "role": { "$ne": "guest" } } |
| $in | Value is in array | { "status": { "$in": ["active", "new"] } } |
Combining Multiple Filters
Multiple filter objects in the filters array are combined with AND logic:
json
{
"module": "user",
"action": "list",
"params": {
"filters": [
{ "age": { "$gt": 20 } },
{ "role": "admin" }
]
}
}➡️ This returns users whose age > 20 AND role === "admin".