Slide 29
Slide 29 text
# preferences->newsletter = true
User.where("preferences @> ?", {newsletter: true}.to_json)
# preferences->interests = ["ruby", "javascript", "python"]
User.where("preferences -> 'interests' ? :language", language: "ruby")
CREATE INDEX preferences_interests_on_users
ON users
USING GIN ((preferences->'interests'))
# preferences->twitter AND preferences->github
User.where("preferences ?& array[:keys]", keys: ["twitter", "github"])
# preferences->twitter OR preferences->github
User.where("preferences ?| array[:keys]", keys: ["twitter", "github"])
# preferences->state = "SP" AND preferences->city = "São Paulo"
User.where("preferences @> ?", {city: "San Francisco", state: "CA"}.to_json)
Fazendo queries no campo jsonb