Se ho una tabella con una chiave hash di userId e una chiave di intervallo di productId come posso inserire un elemento in quella tabella solo se non esiste già usando i binding dynamodb di boto3?Come inserire un elemento in una tabella dinamodb con condizionamento usando boto3
La chiamata normale put_item assomiglia a questo
table.put_item(Item={'userId': 1, 'productId': 2})
mia chiamata con un ConditionExpression assomiglia a questo:
table.put_item(
Item={'userId': 1, 'productId': 2},
ConditionExpression='userId <> :uid AND productId <> :pid',
ExpressionAttributeValues={':uid': 1, ':pid': 3}
)
Ma questo solleva un ConditionalCheckFailedException ogni volta. Se un articolo esiste con lo stesso productId o no.
Bene ... Ho letto la documentazione. Ma ho trovato che scrivere un'espressione condizionale non è intuitivo e sono preoccupato che il modo in cui l'ho scritto non stia facendo quello che penso stia facendo. Quindi mi stavo chiedendo se qualcun altro lo avesse già fatto prima. Hai un esempio di come l'hai fatto? Aggiornerò la mia risposta mostrando come l'ho fatto – aychedee
ho aggiunto alla risposta come lo faccio .. (usando sovrascrittura) –
Ah okay ... che sta usando boto. Sto chiedendo di boto3. Ma grazie per aver dedicato del tempo per dare un'occhiata. – aychedee