# Django 6.0.7 documentation

# PostgreSQL-specifika frågeuttryck

Dessa uttryck är tillgängliga från modulen `django.contrib.postgres.expressions`.

## uttryck för `ArraySubquery()`

class ArraySubquery(queryset)

`ArraySubquery` är en `Subquery`` som använder PostgreSQL `ARRAY`-konstruktören för att bygga en lista med värden från queryset, som måste använda `QuerySet.values`()` för att bara returnera en enda kolumn.

Den här klassen skiljer sig från `ArrayAgg` på så sätt att den inte fungerar som en aggregatfunktion och inte kräver en SQL `GROUP BY`-klausul för att bygga upp listan över värden.

Om du t.ex. vill annotera alla relaterade böcker till en författare som JSON-objekt:

    >>> 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}]