0
不,這只是一個不是約會應用程序的例子。我的應用程序不同,也更復雜。SQL,rails:檢查我的記錄中的JSONB列是否有鍵值對
我有一個rails應用程序。我有2個桌子和寵物。衆議院有許多寵物。我的寵物表有一個名爲pet_description一個JSONB列包含寵物類型和性別的鍵值對,像這樣:
{
"dog"=>"male",
"cat"=>"female",
"parrot"=>"male"
}
而對於這個遷移文件是:
class AddPetDescriptionToPets < ActiveRecord::Migration
def change
add_column :pets, :pet_description, :jsonb, default: {}
add_index :pets, :pet_description, using: :gin
end
end
在我的房子模型,我有一個執行SQL查詢的查詢。它適用於如果我做這個查詢找到所有有寵物的房屋。
self.where("EXISTS (SELECT null FROM pets WHERE pets.house_id = houses.id)")
但是,如果我想查詢所有具有特定寵物類型和性別的房屋,那麼我似乎無法得到此查詢工作。我是JSONB的新手,我在下面的查詢中做了什麼錯誤,請幫忙!!!!
self.where("EXISTS (SELECT null FROM pets WHERE pets.house_id = houses.id AND pets.pet_description @> '{'dog' : 'male'}'::jsonb)")
謝謝! 格雷格
輝煌!謝謝伊利亞!你的答案完美無缺,你是明星! – GregF