Cuando uso sqlalchemy con postgresql, tengo la siguiente tabla y datos:
id | data
----+----------
1 | {}
2 | {"a": 1}
(2 rows)
¿Cómo encuentro las filas que no tienen una clave? p.ej. "a" o datos ["a"]?
Give me all objects that does not have the key a.
id | data
----+----------
1 | {}
(1 row)
self.session.query(Json_test).filter(???)
Respuestas
2 para la respuesta № 1Si el tipo de columna es jsonb
puedes usar has_key
:
session.query(Json_test).filter(sqlalchemy.not_(Json_test.data.has_key("a")))
Para ambos json
y jsonb
tipos esto debería funcionar:
session.query(Json_test).filter(Json_test.data.op("->")("a")==None)