如何使用PostgREST排除PostgreSQL表中为空的JSONB字段数据
解决PostgREST过滤jsonb空数组及空字段的问题
看起来你已经找到了匹配firstname为空(包括info是空数组的情况)的查询方式,现在只需要反转这个条件就能达到你的需求啦。
方法一:直接反转当前条件
你当前的查询是匹配info->0->firstname为null的记录,要排除这些记录,只需要把条件改为not.is.null即可:
https://127.0.0.1/table?info->0->firstname=not.is.null
这个查询会自动排除两种情况:
info是空数组(此时info->0返回null,进而info->0->firstname也是null)info数组里第一个元素的firstname字段为null
方法二:更精确的双重过滤(可选)
如果你想明确区分“空数组”和“数组元素的firstname为空”,可以同时添加两个过滤条件,用&连接:
https://127.0.0.1/table?info=not.is.empty&info->0->firstname=not.is.null
info=not.is.empty:确保info不是空数组info->0->firstname=not.is.null:确保数组第一个元素的firstname不为null
补充小提示
注意到你数据里的字段拼写有个小失误(fistname应该是firstname),不过你当前查询里已经写对了,这点不用操心~ PostgREST的过滤语法支持用not.前缀反转布尔类条件,这是处理这类需求最直接的方式。
内容的提问来源于stack exchange,提问作者renaise21
相关产品推荐
相关产品推荐

