JavaScript: 使用过滤器

过滤器允许您仅返回符合特定条件的行。

过滤器可用于select()update()upsert()delete()查询。

如果Postgres函数返回表响应,您也可以应用过滤器。

Examples

应用过滤器

const { data, error } = await supabase
  .from('instruments')
  .select('name, section_id')
  .eq('name', 'violin')    // 正确用法

const { data, error } = await supabase
  .from('instruments')
  .eq('name', 'violin')    // 错误用法
  .select('name, section_id')

链式调用

const { data, error } = await supabase
  .from('cities')
  .select('name, country_id')
  .gte('population', 1000)
  .lt('population', 10000)

条件链式调用

const filterByName = null
const filterPopLow = 1000
const filterPopHigh = 10000

let query = supabase
  .from('cities')
  .select('name, country_id')

if (filterByName)  { query = query.eq('name', filterByName) }
if (filterPopLow)  { query = query.gte('population', filterPopLow) }
if (filterPopHigh) { query = query.lt('population', filterPopHigh) }

const { data, error } = await query

通过JSON列中的值进行筛选

const { data, error } = await supabase
  .from('users')
  .select()
  .eq('address->postcode', 90210)

筛选引用表

const { data, error } = await supabase
  .from('orchestral_sections')
  .select(`
    name,
    instruments!inner (
      name
    )
  `)
  .eq('instruments.name', 'flute')