Prisma ORM tidak mempunyai kaedah Json string_contains untuk laluan asas
P粉988025835
P粉988025835 2023-09-21 13:41:24
0
1
605

Saya cuba menapis medan jenis json yang mengandungi rentetan kerana saya ingin mencari semua kandungan json

this._prismaService.service.findMany({
          ...args,
          where: {
            OR: [
              {
                nameTranslatableJson: {
                  string_contains: filters.search,
                },
              },
            ],
          },
});

Tetapi penapis ini tidak berfungsi untuk saya, saya tidak dapat menentukan laluan kerana ia perlu menapis dari akar

Struktur json adalah seperti ini

{
  "defaultText": "Prueba???",
  "ES": "What???",
  "EN": "What???"
}

Bagaimana untuk menapis mana-mana kandungan json dari direktori akar atau adakah terdapat cara alternatif untuk melakukan penapisan

P粉988025835
P粉988025835

membalas semua(1)
P粉262113569

Jika anda ingin melakukan carian teks pada semua nilai medan JSON, anda biasanya perlu menggunakan fungsi atau pengendali khusus pangkalan data. Untuk PostgreSQL, anda boleh menggunakan jsonb_to_tsvector函数将JSONB数据转换为tsvector dan kemudian menggunakan fungsi carian teks penuh PostgreSQL.

Berikut ialah contoh cara menggunakan pertanyaan SQL mentah dengan fungsi prisma.$queryRaw函数编写使用jsonb_to_tsvector:

const searchResults = await this._prismaService.$queryRaw`
  SELECT *
  FROM "Service"
  WHERE to_tsvector('english', "nameTranslatableJson"::text) @@ plainto_tsquery('english', ${filters.search})
`;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan