繁体   English   中英

使用sqlalchemy在json键上创建索引(表达式索引)

[英]Using sqlalchemy to create an index on a json key (expression index)

情况是我在postgresql表中有一个JSON列类型。 我想在json中的一个或多个键上创建索引。 我相信我知道如何使用sql (旁注:我的印象是你必须使用jsonb来根据postgresql 文档进行这种索引。似乎不是这样的。)

为了保持一致性,我想通过sqlalchemy这样做,但我没有看到如何在他们的文档中做到这一点。 这可能吗?

我已经找到了这个问题的答案。 正如Craig所指出的,这是一个基于表达式的索引,它可以在Postgresql 9.3中的JSON列类型上实现。 这可以通过SQLAlchemy以下列方式完成:

给定一个所谓的模型MyModel并称为JSON列类型data是采用如下形式:

{"my_key": "my_value"}

要在my_key上创建基于表达式的索引,您可以这样做:

index = Index("my_index_name", MyModel.c.data['my_key'].astext)
index.create(engine)

最初的答案来自SQLAlchemy谷歌小组中的Mike Bayer,你可以在这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM