Query-entiteiten
De Query Entities
bewerking voert query's uit op entiteiten in een tabel en bevat de $filter
opties en $select
.
Aanvraag
Voor aanvragen die gebruikmaken van de $select
queryoptie, moet u versie 2011-08-18 of hoger gebruiken. Bovendien moeten de DataServiceVersion
kopteksten en MaxDataServiceVersion
worden ingesteld op 2.0
.
Als u projectie wilt gebruiken, moet u de aanvraag indienen met versie 2013-08-15 of hoger. De DataServiceVersion
kopteksten en MaxDataServiceVersion
moeten worden ingesteld op 3.0
. Zie De headers van de OData-gegevensserviceversie instellen voor meer informatie.
U kunt de Query Entities
aanvraag als volgt samenstellen. We raden HTTPS aan. Vervang myaccount door de naam van uw opslagaccount en vervang mytable door de naam van uw tabel.
Methode | Aanvraag-URI | HTTP-versie |
---|---|---|
GET |
https://myaccount.table.core.windows.net/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names> https://myaccount.table.core.windows.net/mytable()?$filter=<query-expression>&$select=<comma-separated-property-names> |
HTTP/1.1 |
Het adres van de entiteit die moet worden opgevraagd, kan verschillende vormen hebben op de aanvraag-URI. Zie Query's uitvoeren op tabellen en entiteiten voor meer informatie.
Geëmuleerde opslagservice-URI
Wanneer u een aanvraag indient voor de geëmuleerde opslagservice, geeft u de hostnaam van de emulator en de poort van de tabelservice op als 127.0.0.1:10002
. Volg deze informatie met de naam van het geëmuleerde opslagaccount.
Methode | Aanvraag-URI | HTTP-versie |
---|---|---|
GET |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names> http://127.0.0.1:10002/devstoreaccount1/mytable()?$filter=<query-expression>?$select=<comma-separated-property-names> |
HTTP/1.1 |
De Table-service in de opslagemulator verschilt op verschillende manieren van Azure Table Storage. Zie Verschillen tussen de opslagemulator en Azure Storage-services voor meer informatie.
URI-parameters
De Query Entities
bewerking ondersteunt de queryopties die door de OData-protocolspecificatie worden gedefinieerd.
Aanvraagheaders
In de volgende tabel worden vereiste en optionele aanvraagheaders beschreven:
Aanvraagheader | Beschrijving |
---|---|
Authorization |
Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening op. Zie Aanvragen autoriseren voor Azure Storage voor meer informatie. |
Date of x-ms-date |
Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen autoriseren voor Azure Storage voor meer informatie. |
x-ms-version |
Optioneel. Hiermee geeft u de versie van de bewerking te gebruiken voor deze aanvraag. Zie Versiebeheer voor de Azure Storage-services voor meer informatie. |
Accept |
Optioneel. Hiermee geeft u het geaccepteerde inhoudstype van de nettolading van het antwoord op. Mogelijke waarden zijn: - application/atom+xml (alleen versies vóór 2015-12-11)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Zie Payload-indeling voor Table Storage-bewerkingen voor meer informatie. |
x-ms-client-request-id |
Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet van 1 kibibyte (KiB) die wordt vastgelegd in de logboeken wanneer logboekregistratie is geconfigureerd. We raden u ten zeerste aan deze header te gebruiken om activiteiten aan de clientzijde te correleren met aanvragen die de server ontvangt. |
Aanvraagbody
Geen.
Voorbeeldaanvraag
Request Syntax:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince HTTP/1.1
Request Headers:
x-ms-version: 2015-12-11
x-ms-date: Mon, 27 Jun 2016 15:25:14 GMT
Authorization: SharedKeyLite myaccount:<some key>
Accept: application/json;odata=nometadata
Accept-Charset: UTF-8
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Antwoord
Het antwoord bevat een HTTP-statuscode, een set antwoordheaders en een antwoordtekst.
Statuscode
Een geslaagde bewerking retourneert statuscode 200 (OK).
Zie Status- en foutcodes enTable Storage-foutcodes voor meer informatie over statuscodes.
Antwoordheaders
Het antwoord voor deze bewerking bevat de volgende headers. Het antwoord kan ook extra standaard-HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.
Antwoordheader | Description |
---|---|
x-ms-continuation-NextPartitionKey x-ms-continuation-NextRowKey |
Geeft aan dat: - Het aantal entiteiten dat moet worden geretourneerd, overschrijdt 1000. - Het time-outinterval van de server is overschreden. - Een servergrens wordt bereikt als de query gegevens retourneert die zijn verdeeld over meerdere servers. Zie Time-out en paginering van query's voor meer informatie over het gebruik van de vervolgtokens. |
x-ms-request-id |
Identificeert op unieke wijze de aanvraag die is gedaan. U kunt deze gebruiken om problemen met de aanvraag op te lossen. Zie Problemen met API-bewerkingen oplossen voor meer informatie. |
x-ms-version |
Geeft de versie van Table Storage aan die is gebruikt om de aanvraag uit te voeren. Deze header wordt geretourneerd voor aanvragen die zijn gedaan in versie 2009-09-19 en hoger. |
Date |
Een UTC-datum/tijd-waarde die het tijdstip aangeeft waarop de service het antwoord heeft verzonden. |
Content-Type |
Geeft het inhoudstype van de nettolading aan. De waarde van deze header is afhankelijk van de waarde van de Accept aanvraagheader. Mogelijke waarden zijn:- application/atom+xml (alleen versies vóór 2015-12-11)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Zie Payload-indeling voor Table Storage-bewerkingen voor meer informatie over geldige inhoudstypen. |
x-ms-client-request-id |
Kan worden gebruikt om problemen met aanvragen en bijbehorende antwoorden op te lossen. De waarde van deze header is gelijk aan de waarde van de x-ms-client-request-id header, als deze aanwezig is in de aanvraag en de waarde maximaal 1024 zichtbare ASCII-tekens is. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze header niet aanwezig in het antwoord. |
Voorbeeldantwoord
Response Status:
HTTP/1.1 200 OK
Response Headers:
Content-Type: application/json
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654
Date: Mon, 27 Jun 2016 15:25:14 GMT
x-ms-version: 2015-12-11
Connection: close
Hoofdtekst van de reactie
De Query Entities
bewerking retourneert de lijst met entiteiten in een tabel als een OData-entiteitsset. De lijst met entiteiten heeft een JSON-indeling of een Atom-feed, afhankelijk van de Accept
header van de aanvraag.
Notitie
We raden JSON aan als payload-indeling. Dit is de enige ondersteunde indeling voor versie 2015-12-11 en hoger.
JSON (versie 2013-08-15 en hoger)
Hier volgt een voorbeeld van een aanvraag-URI voor een Query Entities
bewerking in een tabel met klanten:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Dit is de nettolading van het antwoord in JSON zonder metagegevens:
{
"value":[
{
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Dit is de nettolading van het antwoord in JSON met minimale metagegevens:
{
"odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",
"value":[
{
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince@odata.type":"Edm.DateTime",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Dit is de nettolading van het antwoord in JSON met volledige metagegevens:
{
"odata.metadata":" https://myaccount.table.core.windows.net/metadata#Customers",
"value":[
{
"odata.type":"myaccount.Customers",
"odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey=Customer',RowKey='Name')",
"odata.etag":"W/\"0x5B168C7B6E589D2\"",
"odata.editLink":"Customers(PartitionKey=Customer',RowKey='Name')",
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp@odata.type":"Edm.DateTime",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince@odata.type":"Edm.DateTime",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Atom feed (versies vóór 2015-12-11)
Hier volgt een voorbeeld van een aanvraag-URI voor een Query Entities
bewerking in een tabel met klanten:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Hier volgt een voorbeeld van een Atom-antwoord voor de Query Entities
bewerking:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xml:base="https://myaccount.table.core.windows.net">
<id>https://myaccount.table.core.windows.net/Customers</id>
<title type="text">Customers</title>
<updated>2013-08-22T00:50:32Z</updated>
<link rel="self" title="Customers" href="Customers" />
<entry m:etag="W/"0x5B168C7B6E589D2"">
<id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer',RowKey='Name')</id>
<category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" title="Customers" href="Customers(PartitionKey='Customer',RowKey='Name')" />
<title />
<updated>2013-08-22T00:50:32Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:PartitionKey>Customer</d:PartitionKey>
<d:RowKey>Name</d:RowKey>
<d:Timestamp m:type="Edm.DateTime">2013-08-22T00:20:16.3134645Z</d:Timestamp>
<d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>
</m:properties>
</content>
</entry>
</feed>
Autorisatie
Deze bewerking kan worden uitgevoerd door de accounteigenaar en door iedereen met een shared access signature die gemachtigd is om deze bewerking uit te voeren.
Opmerkingen
Een query op Table Storage kan maximaal 1000 entiteiten tegelijk retourneren en kan maximaal vijf seconden worden uitgevoerd. Het antwoord bevat aangepaste headers die een set vervolgtokens bevatten in een van de volgende gevallen:
- De resultatenset bevat meer dan 1000 entiteiten.
- De query is niet binnen vijf seconden voltooid.
- De query overschrijdt de partitiegrens.
U kunt de vervolgtokens gebruiken om een volgende aanvraag voor de volgende pagina met gegevens te maken. Zie Time-out en paginering van query's voor meer informatie over vervolgtokens.
Notitie
Wanneer u volgende aanvragen doet die vervolgtokens bevatten, moet u de oorspronkelijke URI voor de aanvraag doorgeven. Als u bijvoorbeeld een $filter
queryoptie , $select
of $top
hebt opgegeven als onderdeel van de oorspronkelijke aanvraag, neemt u die optie op bij volgende aanvragen. Anders kunnen uw volgende aanvragen onverwachte resultaten retourneren.
Met $top
de queryoptie wordt in dit geval het maximum aantal resultaten per pagina opgegeven. Het maximum aantal resultaten in de hele antwoordset wordt niet opgegeven.
Zie Querytabellen en entiteiten voor meer informatie.
Voor projectieaanvragen die gebruikmaken van de $select
queryoptie, moet de versie 2011-08-18 of hoger zijn. Het maximum aantal geretourneerde eigenschappen is 255. De antwoordtekst bevat alle geprojecteerde eigenschappen, zelfs als eigenschappen geen deel uitmaken van de geretourneerde entiteit.
Als de aanvraag bijvoorbeeld een eigenschap bevat die de geprojecteerde entiteit niet bevat, wordt de ontbrekende eigenschap gemarkeerd met een null-kenmerk. De voorgaande voorbeeldantwoordtekst bevat de Address
eigenschap, die geen deel uitmaakt van de geprojecteerde entiteit. De waarde van de eigenschap is daarom null: <d:Address m:null="true" />
.
De totale tijd die is toegewezen aan de aanvraag voor het plannen en verwerken van de query is 30 seconden. Dit totaal omvat de vijf seconden voor het uitvoeren van de query.
Houd er rekening mee dat de rechterkant van een query-expressie een constante moet zijn. U kunt niet verwijzen naar een eigenschap aan de rechterkant van de expressie. Zie Querytabellen en -entiteiten voor meer informatie over het maken van query-expressies.
Een query-expressie mag geen waarden bevatten null
. De volgende tekens moeten worden gecodeerd als u deze in een querytekenreeks gebruikt:
Schuine streep (/)
Vraagteken (?)
Dubbele punt (:)
Bij teken (@)
Ampersand (&)
Gelijkteken (=)
Plusteken (+)
Komma (,)
Dollarteken ($)
Elke toepassing die een HTTP-aanvraag GET
kan autoriseren en verzenden, kan een query uitvoeren op entiteiten in een tabel.
Zie Queryoperators ondersteund voor Table Storage en LINQ-query's schrijven voor Table Storage voor meer informatie over ondersteunde querybewerkingen voor Table Storage via LINQ.
Zie ook
Table Storage-foutcodes
Aanvragen voor Azure Storage autoriseren
Status en foutcodes
Table Storage-resources adresseren
Query's uitvoeren op tabellen en entiteiten
De headers van de OData-gegevensserviceversie instellen
Entiteit invoegen
Entiteit bijwerken
Entiteit verwijderen