首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tortoise-ORM:如何从tortoise.contrib.postgres.fields查询postgres‘`ArrayField`’

Tortoise-ORM:如何从tortoise.contrib.postgres.fields查询postgres‘`ArrayField`’
EN

Stack Overflow用户
提问于 2022-08-01 10:51:55
回答 1查看 275关注 0票数 2

刚在Tortoise中创建了一个Postgres ArrayField,通过from tortoise.contrib.postgres.fields import ArrayField托管一些我想放的标签。看看我的postgres,生成的字段确实是text[]类型的,这很好,但是我如何使用Tortoise来准确地查询它呢?

我尝试过几次使用filter,但每一次都返回空列表或引发错误。

代码语言:javascript
复制
+----+---------------+
| id | tags (text[]) |
+----+---------------+
| 1  | {foo,bar}     |
+----+---------------+
| 2  | {foo}         |
+----+---------------+
| 3  | {bar}         |
+----+---------------+
代码语言:javascript
复制
# End results

# Works but uses: CAST("tags" AS VARCHAR) LIKE '%foo%'
await Card.filter(tags__contains='foo').values_list('id', flat=True)   

# Doesn't work
await Card.filter(tags__search=['foo']).values_list('id', flat=True)     # error
await Card.filter(tags__search='foo').values_list('id', flat=True)       # error
await Card.filter(tags=['foo']).values_list('id', flat=True)             # error
await Card.filter(tags='foo').values_list('id', flat=True)               # error
await Card.filter(tags__in=['foo']).values_list('id', flat=True)         # []
await Card.filter(tags__in='foo').values_list('id', flat=True)           # []

也尝试了使用settuple,但结果是一样的。

将更多地搜索来源,但是任何帮助都是非常感谢的,船长。

“愿你的虫子轻一点,你那袋多力多士薯片重一点。”--我。

更新:

我还没有找到一种在TORM中查询ArrayField的方法,所以我使用的是JSONField,它有更好的支持。

代码语言:javascript
复制
# Old
tags = ArrayField('text', null=True)    # can't query for now

# New
tags = JSONField(default=[])

如果其他人有同样的问题,这个问题就留在这里。

EN

回答 1

Stack Overflow用户

发布于 2022-08-02 06:31:41

我也在考虑使用JSONField,尽管在Postgres字段中,在某些情况下比较灵活。我找到了DBA社区中的这种比较

最后,我实现了自己的类型化ArrayField:如何在Tortoise-ORM中使用Postgresql数组字段

在您的情况下,我想您将需要为数组包含实现自己的filter操作符。我将查看现有过滤器中的一个例子:默认过滤器滤波器

下面是包含操作符在PostgreSQL本身中的外观:Postgres:检查数组字段是否包含值?

希望这是有帮助的:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73192631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档