首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tortoise-ORM过滤包含带有JSONField数据库的SQLite列表中的值的条目

Tortoise-ORM过滤包含带有JSONField数据库的SQLite列表中的值的条目
EN

Stack Overflow用户
提问于 2022-03-07 16:34:07
回答 1查看 1.1K关注 0票数 0

我正在做一个使用Tortoise-ORMv0.18.1和SQLite db的项目。我需要在json字段中找到一个具有给定值的条目。

我有个这样的模特:

代码语言:javascript
复制
class Foo(Model):
    name = fields.CharField(max_length=50)
    boo = fields.JSONField()

这些条目如下所示:

代码语言:javascript
复制
Foo(name='First', boo=[1, 2, 3])
Foo(name='Second', boo=[4, 5, 6])
Foo(name='Third', boo=[4, 7, 8])

我期待过滤在"boo“字段中有"4”的条目。

我试过:

代码语言:javascript
复制
entries = await Foo.filter(boo_contains=4)

但是entries包含这三个对象,而不仅仅是SecondThird

有什么办法可以过滤掉吗?

文档中说,"contains“对于文本字段 postgresql和MySQL驱动程序是有效的,因此,除了查询所有字段,然后手动筛选或进行原始SQL查询之外,没有其他方法,但我认为值得在这里询问是否存在。

我想另一个选择是让boo字段成为一个TEXTField,然后只使用"contains“操作符,我不确定它是否会是一个更好的选项。

EN

回答 1

Stack Overflow用户

发布于 2022-05-30 05:49:18

尝尝这个。

代码语言:javascript
复制
entries = await Foo.filter(boo__contains=[4])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71384303

复制
相关文章

相似问题

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