Ich versuche, ein Feld vom Typ JSON zu filtern, das Zeichenfolgen enthält, weil ich den gesamten JSON-Inhalt durchsuchen möchte
this._prismaService.service.findMany({ ...args, where: { OR: [ { nameTranslatableJson: { string_contains: filters.search, }, }, ], }, });
Aber dieser Filter funktioniert bei mir nicht, ich kann keinen Pfad angeben, da vom Stamm aus gefiltert werden muss
Die Struktur von JSON ist wie folgt
{ "defaultText": "Prueba???", "ES": "What???", "EN": "What???" }
So filtern Sie JSON-Inhalte aus dem Stammverzeichnis oder gibt es eine alternative Möglichkeit zum Filtern
如果您想在JSON字段的所有值上执行文本搜索,通常需要使用特定于数据库的函数或运算符。对于PostgreSQL,您可以使用
jsonb_to_tsvector
函数将JSONB数据转换为tsvector
,然后使用PostgreSQL的全文搜索功能。以下是如何使用
prisma.$queryRaw
函数编写使用jsonb_to_tsvector
函数的原始SQL查询的示例: