如何在Postgres、Activerecord、Rails 5中查询空的jsonb数组?

4

我有一个名为Post的模型,其中列由以下迁移定义:

add_column :posts, :comments, :jsonb, default: []

add_index :posts, :comments, using: :gin

我想知道运行的查询,以便统计所有具有默认空数组作为评论的帖子数量。
2个回答

10
Post.where("comments = '[]'").count

1
你可以通过将json转换为字符串并计算长度来实现。空的json将返回2。这适用于{}和[]。例如,要返回非空评论:
Post.where("length(comments::text) > 2").count

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