.contains()
can work on array columns or range columns. It is very useful for finding rows where a tag array contains all the values in the filter array.
.contains('arraycol',["a","b"]) // You can use a javascript array for an array column
.contains('arraycol','\{"a","b"\}') // You can use a string with Postgres array \{\} for array column.
.contains('rangecol','(1,2]') // Use Postgres range syntax for range column.
.contains('rangecol',`($\{arr\}]`) // You can insert an array into a string.
const \{ data, error \} = await supabase
.from('countries')
.select('name, id, main_exports')
.contains('main_exports', ['oil'])
const \{ data, error \} = await supabase
.from('countries')
.update(\{ name: 'Mordor' \})
.contains('main_exports', ['oil'])
const \{ data, error \} = await supabase
.from('countries')
.delete()
.contains('main_exports', ['oil'])
// Only valid if the Postgres function returns a table type.
const \{ data, error \} = await supabase
.rpc('echo_all_countries')
.contains('main_exports', ['oil'])