Supabase JSON 查询 JavaScript

Mug*_*tsu 2 javascript node.js supabase

我试图从包含 JSONB 对象数组的表中获取单个条目。我可以以某种方式匹配该数组来找到所需的结果吗?

[
    {
        "chats": [
            { "id":  56789 },
            { "id":  66753 },
        ],
        "id": 999
    },  
    {
        "chats": [
            { "id":  43532 }
        ],
        "id": 999
    }
]
Run Code Online (Sandbox Code Playgroud)

我想获取与 id 匹配999并包含在chats->中的对象id: 66753

尝试了几种方法但没有奏效。

我虽然有些链接会起作用。但没有成功

let { data, error } = await supabase
  .from('xyz')
  .select('*')
  .eq('id', 999)
  .contains('chats', {id: 66753})
Run Code Online (Sandbox Code Playgroud)

能做到吗?

ame*_*ean 5

我相信您在从 supabase 查询 JSONB 数据时需要使用 ->> 运算符,如文档中所述。

因此,如果包含对象数组的列的标题为 jsonb,则效果如下:

  let { data, error } = await supabase
      .from('xyz')
      .select('*')
      .eq('id:jsonb->>id', 999)
      .contains('chats:jsonb->>chats', ['chats->id: 66753'])
Run Code Online (Sandbox Code Playgroud)

更多信息可以在 PostgREST 文档中找到