JSON字段postgres喜欢

Posted

技术标签:

【中文标题】JSON字段postgres喜欢【英文标题】:JSON field postgress like 【发布时间】:2017-11-26 23:29:38 【问题描述】:

是否可以使用 not equal but like 运算符过滤 json 字段中的数据?型号:

from django.contrib.postgres.fields import JSONField
from django.db import models


class Dog(models.Model):
    name = models.CharField(max_length=200)
    data = JSONField()

数据所在行:

"breed": "labrador0", "owner": "name": "Bob0", "other_pets": ["name": "Fishy"]

然后我使用Dog.objects.filter(data__breed='labrador0') 接收数据,但如果我想接收 data.breed 像 'labrador%' 这样的所有行 - 我不知道该怎么做。

我尝试Dog.objects.filter(data__breed__contains='labrador') - 没有结果。

在 psql 中我可以使用 select * FROM polls_dog WHERE polls_dog.data ->> 'breed' like 'labrador4%'; 是通过 orm 实现它的方法吗?

【问题讨论】:

请检查您的标题的拼写:wiki.postgresql.org/wiki/Identity_Guidelines 【参考方案1】:

试试这个:-

Dog.objects.filter(data__breed__startswith='labrador')

This可能对你有帮助。

【讨论】:

以上是关于JSON字段postgres喜欢的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 从 json 字段创建表

如何在 Postgres 中的 JSON 字段上创建索引?

JPA 支持查询 Postgres JSON 字段

Postgres 9.5 - 查询嵌套 JSON 元素的数组长度

Django 和 postgres - 在模型字段中将数据存储为 json 的缺点

AWS Glue 将字符串值从 postgres 转换为 json 数组