sql >> Databasteknik >  >> RDS >> PostgreSQL

Rails (postgres) fråga med jsonb array

Det du vill använda är @> operatör , som testar om ditt vänstra värde innehåller det högra värdet. "Innehåller" fungerar för både objekt och arrayer, så följande fråga skulle fungera:

SELECT * FROM products WHERE specs->'spec_options' @> '["spec1", "spec2"]';

Som jag tror att du kan omvandla till ActiveRecord-kompatibel syntax så här:

scope :with_spec_options, ->(spec_options) { 
  where("specs->'spec_option' @> ?", spec_options.to_json) 
}



  1. Är fulltextsökning svaret?

  2. Entity-Attribute-Value Tabelldesign

  3. FEL 1062 (23000):Duplicera posten '2147483647' för nyckeln 'PRIMÄR'

  4. MySql Cursor - Skapa en procedur