Ich erhalte eine Fehlermeldung, dass "das angegebene Schlüsselelement nicht mit dem Schema übereinstimmt". uuid
ist mein primärer Partitionsschlüssel. Ich habe auch einen primären Sortierschlüssel für version
. Ich dachte, ich kann batchWrite
(docs) verwenden, um alle Elemente mit demselben uuid
zu löschen.Wie lösche ich im Batch mit DynamoDB?
Mein ES6 Code ist wie folgt:
delete(uuid) {
const promise = new Promise();
const params = {
RequestItems: {
[this.TABLE]: [
{
DeleteRequest: {
Key: { uuid: uuid }
}
}
]
}
};
// this._client references the DocumentClient
this._client.batchWrite(params, function(err, data) {
if (err) {
// this gets hit with error
console.log(err);
return promise.reject(err);
}
console.log(result);
return promise.resolve(result);
});
return promise;
}
nicht sicher, warum es auf dem Schlüssel erroring, der die primäre ist. Ich habe Beiträge darüber gesehen, dass ich andere Indizes für Zeiten brauche, in denen ich nach etwas suche, das kein Schlüssel ist. Aber ich glaube nicht, dass das hier der Fall ist.
Ist es möglich, dass die 'uuid' Feld als String eingestellt ist und es eine Nummer, oder umgekehrt sind zu geben? – mindoftea
@mindoftea gut geraten, aber ich gebe eine lange Zeichenfolge in das Feld, das eine Zeichenfolge erwartet. Ich wurde paranoid, der 'Uuid' war aus Versehen undefiniert und scheint es nicht zu sein :)' {"RequestItems": {"campaigns": [{"DeleteRequest": {"Key": {"uuid": "2f114a47 -835e-4937-a0b6-675e0e15ab86 "}}}}}} –
arbeitest du in us-east-1? Ich habe diesen Post tatsächlich passiert, weil ich immer seltsame Serverfehler vom Dynamo bekommen habe - vielleicht ist er heute kaputt. – mindoftea