我正在嘗試對一個json類型的字段進行包含字串的過濾,因為我想搜尋所有的json內容
this._prismaService.service.findMany({ ...args, where: { OR: [ { nameTranslatableJson: { string_contains: filters.search, }, }, ], }, });
但是這個過濾器對我來說不起作用,我不能指定一個路徑,因為它必須從根目錄進行過濾
json的結構是這樣的
{ "defaultText": "Prueba???", "ES": "What???", "EN": "What???" }
如何從根目錄過濾任何json內容或有一個替代方法來進行過濾
如果您想在JSON欄位的所有值上執行文字搜索,通常需要使用特定於資料庫的函數或運算子。對於PostgreSQL,您可以使用
jsonb_to_tsvector
函數將JSONB資料轉換為tsvector
,然後使用PostgreSQL的全文搜尋功能。以下是如何使用
prisma.$queryRaw
函數來寫一個使用jsonb_to_tsvector
函數的原始SQL查詢的範例: