filter on key inside nested JSON
[FEATURE] Deep Filtering on Nested JSON Fields in Supabase
I'm currently working on a project using Refine with Supabase as the data provider. I have a use case where I need to filter data based on a nested JSON field. However, it seems that Refine does not support deep filtering on nested JSON fields out of the box.
Here's a snippet of my current implementation:
where
data
is a JSONB field in Postgresql containing a key named spanish
.3 Replies
Hi @LazerJesus. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Refine supports deep filtering on a relation's fields. This is done by using the
field
property in the filters
object of the useTable
hook. The field
property uses dot notation to access inner fields of the categories. Here's an example:
In this example, it gets the posts where the title
of the categories
is "Beginning". The inner fields of the categories can be reached with dot notation.
However, please note that if you filter based on a table from an inner join, you will need to use .select('*, mytable!inner(*)')
within Supabase.
For more complex or nested filtering, there have been discussions and feature requests in the Refine community. For instance, there was a feature request for nested filters in the Hasura data provider, where the team decided to implement dot notation
to allow filtering via nested objects. This feature was included in the @pankod/refine-hasura@4.9.0
release.
While this feature was implemented for Hasura, it might be worth checking if similar functionality is available or can be implemented for Supabase.
Sources:
- Deep Filtering (https://refine.dev/docs/data/packages/supabase#deep-filtering)
- Nested filters in Hasura data provider (https://github.com/refinedev/refine/issues/2320)
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@271865611209015297> kapa.ai is still learning and improving, please let us know how it did by reacting below
absent-sapphire•6mo ago
Help needed.