PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Durchsuchen Sie mehrdimensionale JSONB-Daten in Laravel Postgres

Ich habe es zum Laufen gebracht und die Antwort hier gepostet, falls jemand in Zukunft Hilfe benötigt.

Grundsätzlich können wir ein einfaches where ausführen Abfrage mit @> Operator. Und der Wert kann mit der gesuchten E-Mail json-codiert werden. Es folgt die Abfrage, um nach bestimmten E-Mails zu suchen, ohne whereRaw zu verwenden Methode.

$contacts = Contact::where("emails", '@>', '[' . json_encode(['value' => $query]) . ']')->get();

Hoffe, es hilft jemand anderem in Zukunft :)