首页 > 解决方案 > Django:获取 JSONField 的大小?

问题描述

我正在使用 Django + Postgres。我有一个 JSONField,我想按字符数的大小从最大到最小对 JSONField 进行排序。有没有 django 原生的方式来做到这一点?

标签: djangopostgresql

解决方案


如果您想知道存储列需要多少字节:

对于字符串:

octet_length(string)

对于前最大值:

t=# with d(j) as (values('{"a":0}'),('{"a":null}'),('{"abc":0}'))
select j from d order by octet_length(j) desc limit 1;

SQL 字符串函数和运算符

或者

pg_column_size(any) - Number of bytes used to store a particular value

获取具有最大 json 值的行只是通过排序pg_column_size(json_column) desc limit 1


推荐阅读