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

Rails (postgres)-Abfrage mit jsonb-Array

Was Sie verwenden möchten, ist der @> Betreiber , die testet, ob Ihr linker Wert den rechten Wert enthält. "Contains" funktioniert sowohl für Objekte als auch für Arrays, also würde die folgende Abfrage funktionieren:

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

Was Sie meiner Meinung nach in ActiveRecord-kompatible Syntax umwandeln können:

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