django - Django:获取 JSONField 的大小?
问题描述
我正在使用 Django + Postgres。我有一个 JSONField,我想按字符数的大小从最大到最小对 JSONField 进行排序。有没有 django 原生的方式来做到这一点?
解决方案
如果您想知道存储列需要多少字节:
对于字符串:
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;
或者
pg_column_size(any) - Number of bytes used to store a particular value
获取具有最大 json 值的行只是通过排序pg_column_size(json_column) desc limit 1