當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Django ArraySubquery用法及代碼示例


本文介紹 django.contrib.postgres.expressions.ArraySubquery 的用法。

聲明

class ArraySubquery(queryset)
Django 4.0 中的新函數。

ArraySubquery 是一個 Subquery ,它使用 PostgreSQL ARRAY 構造函數從查詢集中構建值列表,它必須使用 QuerySet.values() 才能僅返回單個列。

此類與 ArrayAgg 的不同之處在於它不充當聚合函數,並且不需要 SQL GROUP BY 子句來構建值列表。

例如,如果要將所有相關書籍作為 JSON 對象注釋給作者:

>>> from django.db.models import OuterRef
>>> from django.db.models.functions import JSONObject
>>> from django.contrib.postgres.expressions import ArraySubquery
>>> books = Book.objects.filter(author=OuterRef('pk')).values(
...     json=JSONObject(title='title', pages='pages')
... )
>>> author = Author.objects.annotate(books=ArraySubquery(books)).first()
>>> author.books
[{'title': 'Solaris', 'pages': 204}, {'title': 'The Cyberiad', 'pages': 295}]

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.postgres.expressions.ArraySubquery。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。