Oktatóanyag: Az Azure Cosmos DB lekérdezése a Tábla API használatával

A következőkre vonatkozik: Table API

Az Azure Cosmos DB Tábla API támogatja a kulcs/érték (tábla) adatok OData- és LINQ-lekérdezéseit.

Ez a cikk a következő feladatokat mutatja be:

  • Adatok lekérdezése a Tábla API-val

A cikkben szereplő lekérdezések a következő minta People táblát használják:

PartitionKey RowKey E-mail PhoneNumber
Harp Walter Walter@contoso.com 425-555-0101
Smith Ben Ben@contoso.com 425-555-0102
Smith Jeff Jeff@contoso.com 425-555-0104

A Táblák és entitások lekérdezése című szakaszban talál további részleteket a Tábla API-val való lekérdezés menetéről.

További információ az Azure Cosmos DB által nyújtott prémium képességekről: Azure Cosmos DB Tábla API és Fejlesztés a Tábla API-val .NET-keretrendszerben.

Előfeltételek

A lekérdezések működéséhez Azure Cosmos DB-fiókkal kell rendelkeznie, és a tárolóban entitásadatoknak kell lennie. Nem rendelkezik ezekkel? A fiók létrehozásához és az adatbázis feltöltéséhez végezze el az öt perces gyors útmutatót vagy a fejlesztői oktatóanyagot.

Lekérdezés PartitionKey és RowKey tulajdonságok esetén

Mivel a PartitionKey és a RowKey tulajdonságok képezik az entitás fő kulcsát, a következő speciális szintaxis segítségével azonosíthatja az entitást:

Lekérdezés

https://<mytableendpoint>/People(PartitionKey='Harp',RowKey='Walter')  

Results (Eredmények)

PartitionKey RowKey E-mail PhoneNumber
Harp Walter Walter@contoso.com 425-555-0104

A $filter lehetőség részeként is meghatározhatja ezeket a tulajdonságokat, a következő szakaszban látható módon. Vegye figyelembe, hogy a kulcstulajdonság nevei és az állandó értékek megkülönböztetik a kis- és nagybetűket. A PartitionKey és a RowKey tulajdonság típusa egyaránt sztring.

Lekérdezés OData-szűrővel

Szűrő sztringjének felépítésekor ne feledje ezeket a szabályokat:

  • Az OData-protokollspecifikáció által definiált logikai operátorokat használja a tulajdonságok és az értékek összehasonlítására. Vegye figyelembe, hogy nem hasonlíthat össze tulajdonságot dinamikus értékkel. A kifejezés egyik oldalának állandónak kell lennie.
  • A tulajdonság nevét, az operátort és az állandó értéket URL-kódolású szóközzel kell elválasztani. A szóköz URL-kódolása %20.
  • A szűrési sztring minden része megkülönbözteti a kis- és nagybetűket.
  • Az állandó érték adattípusának meg kell egyeznie a tulajdonságéval ahhoz, hogy a szűrő érvényes eredményeket adjon vissza. További információ a támogatott tulajdonságtípusokról: A Table szolgáltatás adatmodelljének ismertetése.

A következő példalekérdezés bemutatja, hogyan szűrhet a PartitionKey és az E-mail tulajdonságok alapján OData $filter használatával.

Lekérdezés

https://<mytableapi-endpoint>/People()?$filter=PartitionKey%20eq%20'Smith'%20and%20Email%20eq%20'Ben@contoso.com'

További információ a szűrőkifejezések felépítéséről különböző adattípusokhoz:Táblák és entitások lekérdezése.

Results (Eredmények)

PartitionKey RowKey E-mail PhoneNumber
Smith Ben Ben@contoso.com 425-555-0102

A DateTime tulajdonságok lekérdezései nem adnak vissza semmilyen értéket, ha Azure Cosmos DB Table API hajtja végre. Míg az Azure Table Storage a határidők időbeli részletességével tárolja a dátum értékeket, a Azure Cosmos DB Table API a _ts tulajdonságot használja. A _ts tulajdonság második részletességi szinten van, amely nem OData-szűrő. Így az időbélyeg-tulajdonságok lekérdezéseit a Azure Cosmos DB blokkolja. Megkerülő megoldásként meghatározhat egy egyéni datetime vagy hosszú adattípus-tulajdonságot, és beállíthatja a Date értéket az ügyfélről.

Lekérdezés a LINQ használatával

A LINQ használatával is végezhet lekérdezést, amelyet a rendszer a megfelelő OData-lekérdezési kifejezésekre fordít. A következő példa bemutatja, hogyan építhetők fel lekérdezések a .NET SDK-val:

IQueryable<CustomerEntity> linqQuery = table.CreateQuery<CustomerEntity>()
            .Where(x => x.PartitionKey == "4")
            .Select(x => new CustomerEntity() { PartitionKey = x.PartitionKey, RowKey = x.RowKey, Email = x.Email });

Következő lépések

Ebben az oktatóanyagban a következőket hajtotta végre:

  • Megtudta, hogyan végezhet lekérdezést a Tábla API-val

Továbbléphet a következő oktatóanyagra, amelyben megismerheti, hogyan terjesztheti az adatait globálisan.