PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Requête Rails (postgres) avec tableau jsonb

Ce que vous voulez utiliser est le @> opérateur , qui teste si votre valeur de gauche contient la valeur de droite. "Contient" fonctionne à la fois pour les objets et les tableaux, donc la requête suivante fonctionnerait :

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

Ce que je pense que vous pouvez transformer en une syntaxe compatible avec ActiveRecord comme suit :

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