【问题标题】:Django Postgres JSONB and using a JSONB indexDjango Postgres JSONB 并使用 JSONB 索引
【发布时间】:2021-04-12 08:13:09
【问题描述】:

所以我们有一个存储在我需要查询的 JSONB 列中的值。我像这样为它创建了一个索引

create index user_notification_policy_id on user_notification using btree (((extra->'policy_id')::int8));

如果查询格式如下,则说明计划使用索引

("user_notification"."extra" -> 'policy_id')::text = '12345678');

如何让 Django 创建这样的 where 子句?我一直在尝试使用extra,但没有运气

return self.extra(
            where='("extra"->"policy_id")::int8 = %s',
            params=[policy_id]
        )

结果

E       ValueError: unsupported format character ')' (0x29) at index 1061

Django 2.2.16

【问题讨论】:

    标签: django postgresql django-models


    【解决方案1】:

    我有额外的格式错误。应该是一个数组

    return self.extra(
                where=['("extra"->\'policy_id\')::int8 = %s'],
                params=[policy_id]
            )
    

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 1970-01-01
      • 2017-08-12
      • 2019-03-21
      • 2019-01-29
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多