sql >> Base de Datos >  >> RDS >> PostgreSQL

Consulta de Rails (postgres) con matriz jsonb

Lo que quiere usar es el @> operador , que comprueba si el valor de la izquierda contiene el valor de la derecha. "Contiene" funciona tanto para objetos como para matrices, por lo que la siguiente consulta funcionaría:

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

Que creo que puede transformar en una sintaxis compatible con ActiveRecord así:

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