Fråga entiteter
Åtgärden Query Entities
frågar entiteter i en tabell och innehåller $filter
alternativen och $select
.
Förfrågan
För begäranden som använder frågealternativet $select
måste du använda version 2011-08-18 eller senare. Dessutom måste huvudena DataServiceVersion
och MaxDataServiceVersion
vara inställda på 2.0
.
Om du vill använda projektion måste du göra begäran med version 2013-08-15 eller senare. Rubrikerna DataServiceVersion
och MaxDataServiceVersion
måste vara inställda på 3.0
. Mer information finns i Ange versionshuvuden för OData-datatjänsten.
Du kan skapa begäran på Query Entities
följande sätt. Vi rekommenderar HTTPS. Ersätt myaccount med namnet på ditt lagringskonto och ersätt mytable med namnet på tabellen.
Metod | URI för förfrågan | HTTP-version |
---|---|---|
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 |
Adressen för den entitet som ska frågas kan ha olika formulär på begärande-URI:n. Mer information finns i Frågetabeller och entiteter.
Emulerad lagringstjänst-URI
När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och tabelltjänstens port som 127.0.0.1:10002
. Följ den informationen med namnet på det emulerade lagringskontot.
Metod | URI för förfrågan | HTTP-version |
---|---|---|
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 |
Tabelltjänsten i lagringsemulatorn skiljer sig från Azure Table Storage på flera sätt. Mer information finns i Skillnader mellan lagringsemulatorn och Azure Storage-tjänster.
URI-parametrar
Åtgärden Query Entities
stöder de frågealternativ som OData-protokollspecifikationen definierar.
Begärandehuvuden
I följande tabell beskrivs obligatoriska och valfria begärandehuvuden:
Begärandehuvud | Beskrivning |
---|---|
Authorization |
Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage. |
Date eller x-ms-date |
Krävs. Anger Coordinated Universal Time (UTC) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage. |
x-ms-version |
Valfritt. Anger vilken version av åtgärden som ska användas för den här begäran. Mer information finns i Versionshantering för Azure Storage-tjänsterna. |
Accept |
Valfritt. Anger den godkända innehållstypen för svarsnyttolasten. Möjliga värden: - application/atom+xml (versioner före 2015-12-11 endast)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Mer information finns i Nyttolastformat för Table Storage-åtgärder. |
x-ms-client-request-id |
Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 kibibyte (KiB) som registreras i loggarna när loggningen har konfigurerats. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. |
Begärandetext
Inga.
Exempelbegäran
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
Svarsåtgärder
Svaret innehåller en HTTP-statuskod, en uppsättning svarshuvuden och en svarstext.
Statuskod
En lyckad åtgärd returnerar statuskoden 200 (OK).
Information om statuskoder finns i Status- och felkoder och Tabelllagringsfelkoder.
Svarshuvuden
Svaret för den här åtgärden innehåller följande rubriker. Svaret kan också innehålla ytterligare HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med HTTP/1.1-protokollspecifikationen.
Svarsrubrik | Description |
---|---|
x-ms-continuation-NextPartitionKey x-ms-continuation-NextRowKey |
Anger att: - Antalet entiteter som ska returneras överstiger 1 000. – Tidsgränsen för servern har överskridits. – En servergräns nås om frågan returnerar data som är spridda över flera servrar. Mer information om hur du använder fortsättningstoken finns i Timeout och sidnumrering för frågor. |
x-ms-request-id |
Identifierar unikt den begäran som gjordes. Du kan använda den för att felsöka begäran. Mer information finns i Felsöka API-åtgärder. |
x-ms-version |
Anger vilken version av Table Storage som användes för att köra begäran. Det här huvudet returneras för begäranden mot version 2009-09-19 och senare. |
Date |
Ett UTC-datum/tid-värde som anger den tid då tjänsten skickade svaret. |
Content-Type |
Anger nyttolastens innehållstyp. Värdet för det här huvudet beror på värdet för begärandehuvudet Accept . Möjliga värden:- application/atom+xml (versioner före 2015-12-11 endast)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Mer information om giltiga innehållstyper finns i Nyttolastformat för Table Storage-åtgärder. |
x-ms-client-request-id |
Kan användas för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet x-ms-client-request-id för huvudet, om det finns i begäran och värdet är högst 1 024 synliga ASCII-tecken.
x-ms-client-request-id Om rubriken inte finns i begäran visas inte det här huvudet i svaret. |
Exempelsvar
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
Själva svaret
Åtgärden Query Entities
returnerar listan över entiteter i en tabell som en OData-entitetsuppsättning. Listan över entiteter har antingen ett JSON-format eller ett Atom-flöde, beroende på Accept
begärans rubrik.
Anteckning
Vi rekommenderar JSON som nyttolastformat. Det är det enda format som stöds för version 2015-12-11 och senare.
JSON (version 2013-08-15 och senare)
Här är en exempelbegärans-URI för en Query Entities
åtgärd i en tabell med kunder:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Här är svarsnyttolasten i JSON utan metadata:
{
"value":[
{
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Här är svarsnyttolasten i JSON med minimala metadata:
{
"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"
}
]
}
Här är svarsnyttolasten i JSON med fullständiga metadata:
{
"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"
}
]
}
Atomfeed (versioner före 2015-12-11)
Här är en exempelbegärans-URI för en Query Entities
åtgärd i en tabell med kunder:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Här är ett Atom-exempelsvar för åtgärden Query Entities
:
<?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>
Auktorisering
Den här åtgärden kan utföras av kontoägaren och av alla som har en signatur för delad åtkomst som har behörighet att utföra den här åtgärden.
Kommentarer
En fråga mot Table Storage kan returnera högst 1 000 entiteter samtidigt och kan köras i högst fem sekunder. Svaret innehåller anpassade rubriker som innehåller en uppsättning fortsättningstoken i något av följande fall:
- Resultatuppsättningen innehåller mer än 1 000 entiteter.
- Frågan avslutades inte inom fem sekunder.
- Frågan korsar partitionsgränsen.
Du kan använda fortsättningstoken för att skapa en efterföljande begäran för nästa sida med data. Mer information om fortsättningstoken finns i Tidsgräns för frågor och sidnumrering.
Anteckning
När du gör efterföljande begäranden som innehåller fortsättningstoken måste du skicka den ursprungliga URI:n på begäran. Om du till exempel har angett ett $filter
, $select
eller $top
frågealternativ som en del av den ursprungliga begäran, inkluderar du det alternativet för efterföljande begäranden. Annars kan dina efterföljande begäranden returnera oväntade resultat.
Frågealternativet $top
i det här fallet anger det maximala antalet resultat per sida. Den anger inte det maximala antalet resultat i hela svarsuppsättningen.
Mer information finns i Frågetabeller och entiteter.
För projektionsbegäranden som använder $select
frågealternativet måste versionen vara 2011-08-18 eller senare. Det maximala antalet returnerade egenskaper är 255. Svarstexten innehåller alla projicerade egenskaper, även om egenskaperna inte ingår i den returnerade entiteten.
Om begäran till exempel innehåller en egenskap som den projicerade entiteten inte innehåller markeras egenskapen som saknas med ett null-attribut. Föregående exempelsvarstext innehåller Address
egenskapen, som inte ingår i den projicerade entiteten. Värdet för egenskapen är därför null: <d:Address m:null="true" />
.
Den totala tid som tilldelats begäran för schemaläggning och bearbetning av frågan är 30 sekunder. Den summan inkluderar de fem sekunderna för frågekörning.
Observera att höger sida av ett frågeuttryck måste vara en konstant. Du kan inte referera till en egenskap till höger om uttrycket. Mer information om hur du skapar frågeuttryck finns i Frågetabeller och entiteter.
Ett frågeuttryck får inte innehålla null
värden. Följande tecken måste kodas om du använder dem i en frågesträng:
Snedstreck (/)
Frågetecken (?)
Kolon (:)
Vid tecknet (@)
Ampersand (&)
Likhetstecken (=)
Plustecken (+)
Kommatecken (,)
Dollartecken ($)
Alla program som kan auktorisera och skicka en HTTP-begäran GET
kan fråga entiteter i en tabell.
Mer information om frågeåtgärder som stöds mot Table Storage via LINQ finns i Frågeoperatorer som stöds för Table Storage och Write LINQ querys against Table Storage (Frågeoperatorer som stöds för Table Storage och Write LINQ querys against Table Storage).
Se även
Felkoder för Table Storage
Auktorisera begäranden till Azure Storage
Status- och felkoder
Hantera Table Storage-resurser
Frågetabeller och entiteter
Ange versionshuvuden för OData-datatjänsten
Infoga entitet
Uppdatera entitet
Ta bort entitet