【问题标题】:Postgres jsonb Index FormatPostgres jsonb 索引格式
【发布时间】:2020-06-01 17:41:34
【问题描述】:

我正在尝试查找这些类型索引的名称。我查看了 Google 和 Postgres 文档,他们对 Value-> 运算符的作用一无所知。以及它与常规的不同之处:-> SomeInt

CREATE INDEX "someIndex" ON "me-db"."someTable" USING btree ((((jsondata -> 'SomeInt'::text) -> 'HasValue'::text)))
CREATE INDEX "someIndex2" ON "me-db"."someTable" USING btree ((((jsondata -> 'SomeInt'::text) -> 'Value'::text)))

->HasValue->Value 运算符的名称是什么? ->Value->Field 有何不同。

【问题讨论】:

    标签: postgresql jsonb


    【解决方案1】:

    这些是您的 json 结构中的键名。如果您将一个与另一个包装在一起,则意味着您有一个这样的嵌套 json(对于上述行):

    {"SomeInt": {"HasValue": 1, "Value": 2}}

    【讨论】:

    • 我们在动态创建索引的代码上有一个错误。我们有一个可为空的类型,它创建了 Value、HasValue 索引(反思性地查看一个可为空的类型),仅此而已。我们现在明白了,谢谢!
    【解决方案2】:

    这些被称为表达或(更常见但不太正确)功能索引。

    您使用的不是->Value,而是->'Value'。这些是不同的东西。拳头将寻找名为“值”的列,并将其内容用作要查找的键的名称。第二个使用文字字符串“Value”作为要查找的键的名称。

    【讨论】:

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