14.5.3 Filtering/Paging Collection Query Endpoints
Use query string parameters to filter and page through Collection Query results.
ORDS Collection Query
GET handlers support query filtering using the q query
string parameter, whose value is an ORDS JSON filter predicate. For example, testing a
GET request with the following URL finds action items whose name
contains the word
Party:$ curl https://example.com/⋯/v0/actionitems?q={"name":{"$like":"%Party%"}}The response looks like the following if just one action item in the system matches.
{
"items": [
{
"_id": 14,
"name": "End of Year Party",
"status": "OPEN",
"team": [
{
"team_member_id": 23,
"name": "David",
"user_id": 4,
"role": "MEMBER"
},
{
"team_member_id": 24,
"name": "Georgia",
"user_id": 5,
"role": "LEAD"
},
{
"team_member_id": 25,
"name": "Jane",
"user_id": 13,
"role": "MEMBER"
}
]
}
],
"hasMore": false,
"limit": 25,
"offset": 0,
"count": 1,
"links": [
⋰
]
}Notice the following properties in the JSON response:
{
⋮
"hasMore": false,
"limit": 25,
"offset": 0,
"count": 1,
⋮
}An ORDS Collection Query handler's response includes the following top-level properties:
count– rows in this response "pageful"limit– maximum rows in a single response, also called the "page size"offset– rows that were skipped before returning the current "page"hasMore–trueif there are more rows to retrieve,falseotherwise
ORDS Collection Query GET handlers support paging through data by adding the query string parameters:
limit– maximum rows in a single response, also called the "page size"offset– rows that were skipped before returning the current "page"
The default value of
offset is 0 if not specified, so to fetch the first 10 actions items, use:$ curl https://example.com/⋯/v0/actionitems?limit=10If the response includes a
hasMore value of true, then get the second page of 10 action items with:$ curl https://example.com/⋯/v0/actionitems?offset=10&limit=10Tip:
When configuring Collection Query GET handlers, always include an ORDER BY clause in your query to ensure a predictable result when paging.
You can combine filtering with paging, too. For example, to retrieve the first 5 action items whose name starts with
Feature:, use:$ curl https://⋯/v0/actionitems?limit=5&q={"name":{"$like":"Feature:%"}}If the response includes a
hasMore value of true, then get the second page of 5 action items with:$ curl https://⋯/v0/actionitems?offset=5&limit=5&q={"name":{"$like":"Feature:%"}}Parent topic: Creating and Testing Read-Only APIs