write waitfor updateitem updated_new returnvalues query node dynamodb batch aws ios amazon-web-services amazon-dynamodb updates increment

ios - waitfor - Incremento de propiedad numérica en AWS DynamoDB Objective C



returnvalues updated_new (1)

Hay un par de cosas. key se define de la siguiente manera:

@property (nonatomic, strong) NSDictionary<NSString *, AWSDynamoDBAttributeValue *> * _Nullable key;

@"KeyValue" reemplazar @"KeyValue" con una instancia de AWSDynamoDBAttributeValue .

expressionAttributeValues se define de la siguiente manera:

@property (nonatomic, strong) NSDictionary<NSString *, AWSDynamoDBAttributeValue *> * _Nullable expressionAttributeValues;

Necesita reemplazar @1 con una instancia de AWSDynamoDBAttributeValue .

Asegúrese de utilizar la última versión de AWS SDK para iOS para que pueda ver las anotaciones genéricas en el archivo de encabezado. Te ayuda a construir el objeto de solicitud adecuado.

Estoy luchando por incrementar el valor de una propiedad numérica de un elemento que ya se guardó en mi tabla en DynamoDB, mi código actualmente es:

AWSDynamoDBUpdateItemInput *updateItemInput = [AWSDynamoDBUpdateItemInput new]; updateItemInput.tableName = @"Table"; updateItemInput.key= @{ @"KeyPropertyName":@"KeyValue" }; updateItemInput.updateExpression = @"SET(counter = counter + :val)"; updateItemInput.expressionAttributeValues =@{ @":val":@1 }; AWSDynamoDB *dynamoDB = [AWSDynamoDB defaultDynamoDB]; [[dynamoDB updateItem:updateItemInput] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"The request failed. Error: [%@]", task.error); } if (task.exception) { NSLog(@"The request failed. Exception: [%@]", task.exception); } if (task.result) { //Do something with result. } return nil; }];

Mi aplicación siempre falla cuando no hago un comentario sobre updateExpression y expressionAttributeValues. Puedo llegar al bloque cuando creo una instancia vacía de mi tipo de elemento y obtengo resultados extraños cuando creo una instancia de AWSDynamoDBAttributeValue para pasar la clave. ¿Alguna sugerencia? ¿También estoy escribiendo incorrectamente mi updateExpression?

También voy a agregar actualizaciones y eliminar elementos en las propiedades de matriz / lista y diccionario / mapa en otro objeto. ¿Cómo diferiría esto?