I have this dynamodb query:
var unitsData = await(docClient.query({
TableName:"test-units-" + config.stage,
IndexName:"unitOwnerIndexDev",
KeyConditionExpression : 'ownerName= :hkey',
ExpressionAttributeValues : {
':hkey': event.ownerName
},
Key:{"unitID": event.unitID
}
}).promise());
I am expecting it to return only one row with unique unitID and its owner. But returned data isn't unique with respect to unitID. It does filter out with respect to owner. unitID is primary key (HASH) and owner is global secondary index.
This is my table:
aws dynamodb create-table --table-name test-units-dev --attribute-definitions AttributeName=unitID,AttributeType=S AttributeName=ownerName,AttributeType=S --key-schema AttributeName=unitID,KeyType=HASH --global-secondary-indexes IndexName=unitOwnerIndexDev,KeySchema=["{AttributeName=ownerName,KeyType=HASH}"],Projection="{ProjectionType=ALL}",ProvisionedThroughput="{ReadCapacityUnits=1,WriteCapacityUnits=1}" --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 --endpoint-url http://localhost:8000