【发布时间】:2020-07-31 13:51:49
【问题描述】:
我尝试使用整数数组,然后是字符串数组。但是,我不断收到同样的错误:
ERROR: operator does not exist: jsonb ?| integer[]
我的查询如下所示:
Bet.query()
.select(
'id',
'status'
)
.whereJsonSupersetOf('participants_ids', [userId])
.range()
.limit(10)
.orderBy('id', 'DESC')
.throwIfNotFound();
这就是数组的存储方式:
每个用户都有一个屏幕,他们可以在其中查看自己与其他用户的赌注。为了列出登录用户的投注,我需要检查参与者 ID 列。这是一个数组,其中包含 2 个相互投注的用户的 id。
我查询的目的是返回一个投注列表,其中当前用户的 ID 包含在每个投注的参与者 ID 数组中。
最初,我尝试使用用户.where() 和.orWhere() 来检查当前用户的ID 是投注主机的ID,还是投注挑战者的ID。但这并没有给我想要的结果。所以我决定一个数组列会更好。
我似乎无法让它工作。我看过一些帖子,但它们似乎是对象数组,而不是整数或字符串数组。我只是想检查参与者ids 数组列是否包含我传递给查询的 userId。
我也在使用 Knex JS。
知道我在这里做错了什么吗?
提前致谢。
【问题讨论】:
标签: postgresql knex.js objection.js