我试图找出一种方法来查询我的模型的特定实例上的postgres JSONField内的数据。
从我所看到的情况来看,如果你有一个JSONField属性,然后选择你的模型的所有实例,其中属性 - >> color =' red'或者其他什么。
所以,让我们举一个更实际的例子,让我们说我们有一个模型Shoe
,它有价格和数量以及任何字段,但是还有一个名为{{的JSONField 1}},这是一个对象数组,每个对象都有使每个版本都特殊的东西。
因此,如果Shoe模型的一个实例是Air Jordans,则JSONField的属性可能如下所示:
versions
所以我们可以做两件事,我们可以:
[
{
color: black,
edition: limited,
tongueColor: red
},
{
color: black,
edition: standard
},
{
color: gold,
edition: fancy,
bright: very
}
]
或其他东西,可以在最后使用某些方法或某些内容来返回上面Shoe.objects.filter(name='Air Jordans')
所在的前两个对象?我可以在网上找到第一个但不是第二个的例子。
我可以将对象带入内存并从那里进行过滤,但是这个JSONField是我希望存储大量任意数据的地方,因此能够在不将整个blob带入内存的情况下进行查询是非常重要的。 JSONField可以支持吗?
答案 0 :(得分:1)
这可能对您有用:
Shoes.objects.filter(yourJsonFieldName__contains={'colors': 'black'})
答案 1 :(得分:1)