Every database query returns a
PageCollection::class, which can be used either as an iterable
Collection of the pages pages or as a JSON-String, suited for frontend handling.
$pageCollection = Notion::database($databaseId)->query(); $collectionOfPages = $pageCollection->asCollection(); $jsonOfPages = $pagesCollection->asJson();
In order to understand the full context of handling multiple results, please refer to Handling Results .
Filtering a database query
You can pretty much filter database queries like in Notion.
Notion::database($databaseId) ->filterBy($filters) // filters are optional ->sortBy($sortings) // sorts are optional ->limit(5) // limit is optional ->query() ->asCollection();
Please refer to Filtering and Sorting , on how to handle filtering and sorting in detail.
Query responses of the Notion API are always limited to a maximum of 100 results. Results can also be limited to a lesser amount which makes pagination necessary.
Getting results further into the dataset can be achieved by using an offset.
$response = Notion::database($databaseId)->query(); $startCursor = $response->getNextCursor(); $responseWithOffset = Notion::database($databaseId) ->offset($startCursor) ->query();
Please refer to Pagination for more details.