[英]typeorm add index on jsonb column property
我有一個表,其中有一個名為asset
的jsonb
列。 此列中的記錄有一個名為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 INDEX
和DROP 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.