Tôi có một trường JSONB đôi khi có các khóa lồng nhau. Ví dụ:Bộ lọc SQLAlchemy theo các khóa lồng nhau trong JSONB
{"nested_field": {"another URL": "foo", "a simple text": "text"}, "first_metadata": "plain string", "another_metadata": "foobar"}
Nếu tôi làm .filter(TestMetadata.metadata_item.has_key(nested_field))
tôi nhận được hồ sơ này.
Tôi làm cách nào để tìm kiếm sự tồn tại của khóa lồng nhau? ("a simple text"
)
Awesom e ... IMHO nó không phải là rõ ràng rằng chỉ số Path là một JSON lồng nhau, nhưng có lẽ nó chỉ là tôi. Nhân tiện - để kiểm tra dựa trên giá trị tôi muốn sử dụng nội bộ: '.filter (TestMetadata.metadata_item [key] .astext == value)' Trường hợp khóa là bộ tóan – Boaz
Chắc chắn, mặc dù câu hỏi của bạn là nhiều hơn * kiểm tra sự tồn tại * và không * kiểm tra giá trị * loại điều. – van
bạn hoàn toàn đúng ... Tôi cần cả hai (và rõ ràng là impl. Khác nhau vì has_key không hỗ trợ một bộ dữ liệu) – Boaz