在PostgreSQL中串联JSONB访问器

问题描述

我有一个如下查询

select 1 from jsonb_array_elements(students::jsonb -> 'users') as e
   where e @> '{"id": "1"}'

但是我想更改此内容

students::jsonb -> 'users'

不必进行硬编码,而是采用节点数组(例如[“ class”,“ users”])并将它们连接起来以创建

students::jsonb -> 'class' -> 'users'

我需要此查询是动态的,因为我将不会一直在同一节点中查找所需的数据。

解决方法

如果我理解您的问题正确,那么您正在寻找#> operator

students #> '{class,users}'