Consultar columna jsonb que contiene una matriz de objetos JSON

yo sueloPostgreSQL 9.5 y Rails 5. Quiero consultar eljsonb columna que se muestra a continuación que contiene una matriz de objetos JSON para devolver todos los elementos de la matriz JSON que contienen{"kind":"person"} y también realizar un recuento.
losSQL Yo uso se muestra debajo de los datos json. La ejecución de la consulta solo devuelve una matriz vacía.

He intentado las consultas sugeridasaquí yaquí.

Esto es lo que mijsonb los datos se ven así:

   '[
        {"kind":"person", "filter_term":"56","selected_attr":"customer"},
        {"kind":"email", "filter_term":"marketer","selected_attr":"job_title"}
      ]'

Quiero que devuelva una de las consultas sql:

                             data
----------------------------------------------------------------------
 '{"kind":"person", "filter_term":"56","selected_attr":"customer"}'
(1 row)

y otra consulta para devolver la matriz para que pueda llamar a contar en ella en mi aplicación y también recorrerla para crear formularios:

 data
----------------------------------------------------------------------
 '[{"kind":"person", "filter_term":"56","selected_attr":"customer"}]'
 (1 row)

Intenté esta consulta SQL:

 "SELECT * FROM \"segments\" WHERE (payload @> '[{\"kind\":\"person\"}]')"

También probé esta consulta:

  "SELECT payload FROM segments WHERE payload @> '[{\"kind\":\"person\"}]'::jsonb;"

Aquí hay una tercera consulta:

 "SELECT * FROM segments s WHERE s.payload->'\"#{a}\"' @> '[{\"kind\":\"person\"}]';"

El modelo:

class Segment < ApplicationRecord
 store_accessor :payload,:kind, :filter_term, :selected_model_name, :selected_attr, :limit, :selected_operator
end

La migración:

create_table "segments", force: :cascade do |t|

  t.jsonb    "payload",    default: "[]", null: false
  t.index ["payload"], name: "index_segments_on_payload", using: :gin

end

Respuestas a la pregunta(1)

Su respuesta a la pregunta