class JsonHavingModel(models.Model):
the_field = JSONField(unique=True)
这有点像:
CREATE UNIQUE INDEX app_jsonhavingmodel_the_field_c1f3c983_uniq ON app_jsonhavingmodel (the_field);
但这究竟意味着什么?它只检查键吗?只是价值观?只是文字JSON文本?是检查整个对象层次结构吗?这是一个愚蠢的问题吗?生命的意义是什么?
答案 0 :(得分:5)
这正是您所期望的意思 - 该列中的值必须在该表中是唯一的。
假设你的列是一个jsonb值,这意味着比较结构是否相等。
SELECT '{"a":3, "b":2}'::jsonb = '{"b":2, "a":3}'::jsonb;
?column?
----------
t
(1 row)