sql >> Databasteknik >  >> RDS >> PostgreSQL

Sök över en kapslad/multi-level Postgres JSON-typ med Active Record

Om du använder Postgres som databas och kolumnen verkligen är en json-typ, kan du använda en sökning i Rails så här:

LogService.where("response_body#>>'{status}' = 'ok'")

Denna #>> kommer att gå över json-vägen och göra sökningen. Om du bara använder #> (med bara en>), kommer den att returnera resterande json.

Ett annat exempel, om du vill få "c" => "ok"

LogService.where("response_body#>>'{um, b, c}' = 'ok'")

Jag tror att det är det.




  1. Konstigt Mysql-fel 1111, förmodligen fungerat tidigare

  2. Inga tabeller hittades i databasen

  3. Hur söker jag efter namn som börjar på A i MySQL?

  4. Använd TOP eller Rank när du hittar de första eller de flesta observationerna