Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

DynamoDB - Is it possible to query with a filter without data types?

0

Is it possible to omit the data types specification when running a Amazon DynamoDB Query with a QueryFilter or FilterExpression.

For example:

"AttributeValueList": [ {"S": "No One You Know"} ]

(from here)

I couldn't find a way to do it. Am I missing something?

gefragt vor 4 Jahren1091 Aufrufe
1 Antwort
0
Akzeptierte Antwort

The low-level Query API requires specifying the data type:

https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html

However, there are higher-level Document Clients available that abstract this for you, allowing you to pass a value (string, number, bool, etc.) as-is to the higher-level query API, and the DocumentClient will translate that to the low-level API for you. Big time saver:

https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/dynamodb-example-document-client.html https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html

Example:

var params = {
  TableName: 'Table',
  IndexName: 'Index',
  KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey',
  ExpressionAttributeValues: {
    ':hkey': 'key',
    ':rkey': 2015
  }
};

var documentClient = new AWS.DynamoDB.DocumentClient();

documentClient.query(params, function(err, data) {
   if (err) console.log(err);
   else console.log(data);
});

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#query-property

Also, per docs:

QueryFilter - This is a legacy parameter. Use FilterExpression instead. For more information, see QueryFilter in the Amazon DynamoDB Developer Guide.

beantwortet vor 4 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen