2016-10-08 64 views
0

使用PostgreSQL的SQLAlchemy的,我有以下表和數據:在沒有鑰匙SQLAlchemy的JSON查詢行沒有一個特定的密鑰(密鑰存在)

id | data 
----+---------- 
    1 | {} 
    2 | {"a": 1} 
(2 rows) 

我如何找到行(S) 。例如「a」還是數據[「a」]?

Give me all objects that does not have the key a. 
id | data 
----+---------- 
    1 | {} 
(1 row) 

self.session.query(Json_test).filter(???) 

回答

1

如果列類型是jsonb你可以使用has_key

session.query(Json_test).filter(sqlalchemy.not_(Json_test.data.has_key('a'))) 

對於這兩種jsonjsonb類型這應該工作:

session.query(Json_test).filter(Json_test.data.op('->')('a')==None) 
相關問題