簡體   English   中英

typeorm 在 jsonb 列屬性上添加索引

[英]typeorm add index on jsonb column property

我有一個表,其中有一個名為assetjsonb列。 此列中的記錄有一個名為value的字段。 我正在尋找一個選項來創建asset.value索引,但無法找到它。 有人可以幫我嗎? 我正在使用typeorm

謝謝

我沒有做你所要求的事情的經驗,但我確實找到了這篇關於 GIN 索引的文章 所以如果你有這張桌子

CREATE TABLE test(id int, data JSONB, PRIMARY KEY (id));

您可以在其上創建 GIN 索引:

CREATE INDEX datagin ON books USING gin (data);

目前看來 TypeORM 不會支持這種類型的專用索引。 請參閱此 github 問題 但是您可以手動將CREATE INDEXDROP INDEX添加到 TypeORM 遷移up()down()函數中。

然后,您還需要運行自定義 SQL 以使用帶有路徑運算符 @>, <@的索引:

select * from books where data @> '{"braille":true}'::jsonb;

您可以使用 EntityManager API 執行以下操作

const rawData = await manager.query(`select * from books where data @> '{"braille":true}'::jsonb`);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM