Django Postgresql ArrayField聚合

编程入门 行业动态 更新时间:2024-10-28 13:29:18
本文介绍了Django Postgresql ArrayField聚合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在我的Django应用程序中,使用Postgresql,我有一个具有CharFields的ArrayField的模型。 我想知道是否有一种DB方式聚合并获取表中所有字符串的列表。例如:

In my Django application, using Postgresql, I have a model with an ArrayField of CharFields. I would like to know if there's a DB way to aggregate and get a list of all the strings in the table. For example:

  • ['dog','cat']
  • ['dog']
  • ['cat']
  • 会产生['dog','cat']

    would yield ['dog', 'cat']

    我知道如何在Python中执行此操作,但是想要找出一种在数据库级别聚合的方法。 使用Django 1.8.4

    I know how to do that in Python but would like to find out a way to aggregate this on the DB level. Using Django 1.8.4

    推荐答案

    在PostgreSQL中,您可以执行以下操作:

    In PostgreSQL you can do the following:

    SELECT DISTINCT UNNEST(array_column) FROM the_table;

    所以如果你的模型看起来像

    So if your model looks something like

    class TheModel(models.Model): # ... array_field = ArrayField(models.CharField(max_length=255, blank=True),\ default=list) # ...

    Django的等价物是: / p>

    the Django equivalent is:

    TheModel.objects.annotate(arr_els=Func(F('array_field'), function='unnest'))\ .values_list('arr_els', flat=True).distinct()

    更多推荐

    Django Postgresql ArrayField聚合

    本文发布于:2023-10-15 11:50:04,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1494250.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:Django   Postgresql   ArrayField

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!