Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

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?

posta 4 anni fa1088 visualizzazioni
1 Risposta
0
Risposta accettata

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.

con risposta 4 anni fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande