这是一个棘手的问题,希望有人能帮助我们所有人,在PostgreSQL中使用SQLAlchemy在JSON(或JSONB)列的嵌套键上发布一个/他们的方法来创建索引(我特别使用Flask SQLAlchemy,但我不认为这对答案有多大影响)。在
我尝试了下面的索引创建的各种排列,从键错误到'c'不是属性,到这个表达式不支持运算符'getitem'。在
任何帮助都将不胜感激。在
# Example JSON, the nested property is "level2_A"
{
'level1': {
'level2_A': 'test value',
}
}
class TestThing(db.Model):
__tablename__ = 'test_thing'
id = db.Column(db.BigInteger(), primary_key=True)
data = db.Column(JSONB)
__table_args__ = (db.Index('ix_1', TestThing.data['level1']['level2_A']),
db.Index('ix_2', data['level1']['level2_A'].astext),
db.Index('ix_3', "TestThing.c.data['level1']['level2_A'].astext"),
db.Index('ix_4', TestThing.c.data['level1']['level2_A'].astext),
db.Index('ix_5', "test_thing.c.data['level1']['level2_A']"),
)
# db.Index('ix_1', TestThing.data['level1']['level2_A'])
# db.Index('ix_2_t', "test_thing.data['level1']['level2_A']")
# db.Index('ix_3', "TestThing.c.data['level1']['level2_A'].astext")
# db.Index('ix_4', TestThing.c.data['level1']['level2_A'].astext)
# db.Index('ix_5', "test_thing.c.data['level1']['level2_A']")
目前没有回答
相关问题 更多 >
编程相关推荐