En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

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?

demandé il y a 4 ans1,1 k vues
1 réponse
0
Réponse acceptée

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.

répondu il y a 4 ans

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions