Voorbeelden van DynamoDB-query's

Voorbeelden Van Dynamodb Query S



Een database is een verzameling gegevens - DynamoDB is daarop geen uitzondering. Databases bevatten veel gegevens die moeilijk te achterhalen zijn zonder een vooraf gedefinieerd mechanisme. Dit is waar het querycommando een belangrijke rol speelt.

Zoals elk databasebeheersysteem biedt DynamoDB verschillende zoekmethoden waarmee u met het systeem kunt communiceren om toegang te krijgen tot uw gegevens en deze te manipuleren. Query's uitvoeren in DynamoDB is een zeer krachtige tool waarmee u een item of een groep items kunt ophalen die verband houden met het querycommando.

Dit artikel schetst de belangrijkste voorbeelden van de DynamoDB-querybewerkingen.







Algemene voorbeelden van DynamoDB-query's

Het standaardgedrag voor de querybewerking in DynamoDB is het retourneren van alle items die zijn gekoppeld aan de query-items. Interessant is dat de queryopdracht in DynamoDB bruikbaar is met tabellen of secundaire indexen.



Hoe dan ook, zorg er altijd voor dat u de gelijkheidsvoorwaarde opgeeft voor de waarde van uw partitiesleutel. Nogmaals, het kan zijn dat u een andere voorwaarde voor de sorteersleutel moet opgeven voor het geval u er een in de opdracht gebruikt.



Andere parameters die u tegenkomt bij het opvragen van DynamoDB zijn ook KeyConditionExpression en FilterExpression. De KeyConditionExpression specificeert de sleutelwaarden die u wilt opvragen. Aan de andere kant verwijdert de FilterExpression items uit de queryresultaten voordat u een antwoord krijgt. U gebruikt de ExpressionAttributeValues ​​als tijdelijke aanduidingen voor de genoemde expressieparameters.





Voorbeelden van DynamoDB-query's zijn:

Een enkel item uit een tabel vinden op basis van primaire sleutels

U kunt het Query-hulpprogramma in DynmoDB gebruiken om een ​​enkel item te vinden door te vertrouwen op een combinatie van de partitiesleutel en sorteersleutelwaarden van het item. De syntaxis voor een dergelijke bewerking is als volgt:



aws dynamodb-query \

--table-name MyTableName \

--sleutelvoorwaarde-expressie 'Partitiesleutel = :pk EN Sorteersleutel = :sk' \

--expressie-attribuutwaarden '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

Het bovenstaande query-hulpprogramma is bedoeld om een ​​item op te halen met een partitiesleutelwaarde a1234b en een sorteersleutelwaarde odef456b uit de MyTableName-tabel. We kunnen bijvoorbeeld het bovenstaande hulpprogramma gebruiken om een ​​item in onze tabel 'Bestellingen' te vinden. De partitiesleutelwaarde van het item kan zijn wr546gg die de Customer_ID vertegenwoordigt, terwijl de sorteersleutelwaarde kan zijn 24536433 vertegenwoordigt het bestelnummer.

Het resultaat kan als volgt zijn:

Het bovenstaande resultaat brengt Holiday Books terug als het enige item met een partitiesleutelwaarde van wr546gg en een sorteersleutelwaarde van 24536433. Het brengt ook alle andere aanvullende attributen die aan het item zijn gekoppeld. In onze illustratie brengt het het factuurnummer en het betaalde bedrag terug.

Met name zal de queryopdracht een lege lijst terugbrengen als er geen item is dat overeenkomt met de opgegeven primaire sleutelwaarden.

Uittreden Alle items uit een DynamoDB-tabel die overeenkomen met specifieke kenmerkwaarden

Gebruik een filterexpressie om alle items op te halen die een vergelijkbare kenmerkwaarde hebben in een specifieke DynamoDB-tabel.

De opdracht voor deze querybewerking is zoals hieronder weergegeven.

aws dynamodb-query \

--table-name MyTableName \

--filter-expressie 'OtherAttribute1 = :val' \

--expressie-attribuutwaarden '{':val':{'S':'waarde1'}}'

We kunnen bijvoorbeeld de bovenstaande queryopdracht gebruiken om nummers op te halen met meer die langer dan 5 minuten duren in onze muziektabel. Om dit te bereiken, stellen we onze OtherAttribute1-waarde in op 5.00 en MyTableName op Music.

Het resultaat kan zijn zoals hieronder weergegeven:

Het is noodzakelijk om de lijst beknopt te houden. Maar uit de resultaten haalde ons querycommando 11 items op met een filterexpressiewaarde van 5,00 uit onze DynamoDB Music-tabel.

Alle items ophalen met een bepaald bereik van attribuutwaarden

De onderstaande opdracht is handig bij het ophalen van items in een bepaalde tabel:

aws dynamodb-query \

--table-name \

--sleutelvoorwaarde-expressie 'attribuutnaam TUSSEN :val1 EN :val2' \

--expressie-attribuutwaarden '{':val1':{'N':''},':val2':{'N':''}}'

Natuurlijk moet u alle attributen vervangen door uw aangepaste inloggegevens, zoals u zou moeten doen met elke andere opdrachtregel. We gebruiken bijvoorbeeld onze tabel Werknemer met een bereiksleutelattribuut met de naam 'leeftijd'. We streven ernaar werkgevers tussen de 30 en 42 jaar terug te halen.

Onze nieuwe opdrachtregel ziet er als volgt uit:

aws dynamodb-query \

--tabelnaam Gebruikers \

--sleutelvoorwaarde-expressie 'leeftijd TUSSEN :val1 EN :val2' \

--expressie-attribuutwaarden '{':val1':{'N':'30'},':val2':{'N':'42'}}'

Als u het bovenstaande hulpprogramma uitvoert, krijgt u een soortgelijke reactie als in de onderstaande afbeelding;

De afbeelding hierboven laat zien dat de zoekopdracht 6 items heeft opgeleverd, waarbij de attribuutwaarde voor elke zoekopdracht wordt aangegeven. De ScannedCount is het aantal items dat in de tabel is gescand, terwijl de CapacityUnits het aantal verbruikte eenheden is tijdens de bewerking.

Gevolgtrekking

Aangezien DynamoDB een NoSQL-database is, gedraagt ​​de querybewerking zich niet zoals die van uw gewone AQL-database. Maar als u dat eenmaal doet, zult u ontdekken dat de operatie behoorlijk krachtig is en uw interactie met de database een fluitje van een cent zal maken.