在 Postgres JSONB 列中按数字排序

Order by number in Postgres JSONB column

我在我的 JSONB 列中定义了一个 position 键。

这些值被视为文本,所以下面的查询

MyModel.order("data ->> 'position' ASC").each {|x| puts x.position}

returns:

0
1
10
2
3

如何将 position 视为整数并根据它对我的模型进行排序?

纯属猜测,但也许:

MyModel.order("(data ->> 'position')::Integer ASC").each {|x| puts x.position}