{"title":"PostgreSQL-specifika frågeuttryck","version":"6.1","locale":"sv","docname":"ref/contrib/postgres/expressions","url":"/sv/6.1/ref/contrib/postgres/expressions/","canonical":"https://djangodocs.dev/sv/6.1/ref/contrib/postgres/expressions/","summary":"Dessa uttryck är tillgängliga från modulen django.contrib.postgres.expressions . uttryck för ArraySubquery() Link to this heading # class ArraySubquery ( queryset )…","html":"<span id=\"postgresql-specific-query-expressions\"></span><h1>PostgreSQL-specifika frågeuttryck<a class=\"heading-anchor\" href=\"#module-django.contrib.postgres.expressions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Dessa uttryck är tillgängliga från modulen <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.expressions</span></code>.</p>\n<section id=\"arraysubquery-expressions\">\n<h2>uttryck för <code class=\"docutils literal notranslate\"><span class=\"pre\">ArraySubquery()</span></code><a class=\"heading-anchor\" href=\"#arraysubquery-expressions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.expressions.ArraySubquery\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ArraySubquery</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.expressions.ArraySubquery\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ArraySubquery</span></code> är en <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Subquery`</span></code> som använder PostgreSQL <code class=\"docutils literal notranslate\"><span class=\"pre\">ARRAY</span></code>-konstruktören för att bygga en lista med värden från queryset, som måste använda <code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.values`()</span></code> för att bara returnera en enda kolumn.</p>\n<p>Den här klassen skiljer sig från <a class=\"reference internal\" href=\"/sv/6.1/ref/contrib/postgres/aggregates/#django.contrib.postgres.aggregates.ArrayAgg\" title=\"django.contrib.postgres.aggregates.ArrayAgg\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ArrayAgg</span></code></a> på så sätt att den inte fungerar som en aggregatfunktion och inte kräver en SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">GROUP</span> <span class=\"pre\">BY</span></code>-klausul för att bygga upp listan över värden.</p>\n<p>Om du t.ex. vill annotera alla relaterade böcker till en författare som JSON-objekt:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">OuterRef</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">JSONObject</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.expressions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArraySubquery</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">books</span> <span class=\"o\">=</span> <span class=\"n\">Book</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">=</span><span class=\"n\">OuterRef</span><span class=\"p\">(</span><span class=\"s2\">&quot;pk&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">json</span><span class=\"o\">=</span><span class=\"n\">JSONObject</span><span class=\"p\">(</span><span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">,</span> <span class=\"n\">pages</span><span class=\"o\">=</span><span class=\"s2\">&quot;pages&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">books</span><span class=\"o\">=</span><span class=\"n\">ArraySubquery</span><span class=\"p\">(</span><span class=\"n\">books</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">first</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">books</span>\n<span class=\"go\">[{&#39;title&#39;: &#39;Solaris&#39;, &#39;pages&#39;: 204}, {&#39;title&#39;: &#39;The Cyberiad&#39;, &#39;pages&#39;: 295}]</span>\n</code></pre></div>\n</section>","rootId":"module-django.contrib.postgres.expressions","toc":[{"title":"uttryck för ArraySubquery()","anchor":"arraysubquery-expressions","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.1/ref/"},{"docname":"ref/contrib/index","title":"contrib paket","url":"/sv/6.1/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/sv/6.1/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/constraints","title":"PostgreSQL-specifika databasbegränsningar","url":"/sv/6.1/ref/contrib/postgres/constraints/"},"next":{"docname":"ref/contrib/postgres/fields","title":"PostgreSQL-specifika modellfält","url":"/sv/6.1/ref/contrib/postgres/fields/"},"formats":{"html":"/sv/6.1/ref/contrib/postgres/expressions/","markdown":"/sv/6.1/ref/contrib/postgres/expressions.md","json":"/sv/6.1/ref/contrib/postgres/expressions.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/postgres/expressions.txt","official":"https://docs.djangoproject.com/sv/6.1/ref/contrib/postgres/expressions/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}