Rails Postgres如何查询空对象的jsonb列?

7
我该如何使用Active Record获取JSONB列中的所有空记录?

你是否正在寻找所有jsonb列为null的行?或者,你是否正在寻找所有jsonb列为空对象'{}'的行?这里提供一些示例代码/SQL可以帮助理解。 - MrWillihog
我正在寻找所有jsonb列为空对象'{}'的行。我实际上尝试了Active Record查询接口Model.where.not(my_column:{})。 - Shani
你尝试过使用 Model.where("my_column = '{}'") 吗? - MrWillihog
我会将其作为答案添加。 - MrWillihog
2个回答

16

您可以使用以下语法在JSONB列中查询空对象:

Model.where("column = '{}'")

0

你可以通过将 JSON 转换为字符串并计算长度来实现此操作。空的 JSON 将返回 2。这对 {} 和 [] 都适用。 例如:返回空注释

Model.where("length(column::text) <= 2").count

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接