Ich habe eine Produkttabelle in DynamoDB, die einige Elemente hat. Jetzt muss ich eine Liste von Käufern zu dem Produkt hinzufügen, das wachsen kann, d. H. An Liste anhängen. Es funktioniert, wenn ich eine leere Liste oder eine Liste mit einigen Elementen im Tabellenelement habe, aber für die erste Addition einen Fehler erzeugt. Gibt es eine Möglichkeit zu überprüfen, ob eine Liste existiert, dann anhängen, sonst eine Liste hinzufügen. hier ist mein Codean Liste anfügen, wenn vorhanden oder Liste in dynamoDB hinzufügen
let params = {
TableName: "product",
ExpressionAttributeNames: {
"#Y": "buyer"
},
ExpressionAttributeValues: {
":y": ["PersonXYZ"]
},
Key: {
id: 'Hy2H4Z-lf'
},
UpdateExpression: "SET #Y = list_append(#Y,:y)"
};
updateItemInDDB(params).then((data) => {
res.status(200).send(data);
}, err => {
console.log(err);
res.sendStatus(500);
});
UpdateItemInDDB ist nur eine Funktion, die dnamodb Code auf ein params und führen Sie nimmt. Ich verwende JavaScript sdk für DynamoDB mit Document Client.
Wie viele "Käufer" erwarten Sie für Ihre Produkte? DynamoDB-Elemente haben eine maximale Größe. Indem Sie Käufer als eine Eigenschaft eines Produkts hinzufügen, begrenzen Sie die Anzahl der Käufer, die Sie haben können. Architektonisch mag es besser sein, eine separate Tabelle für Käufer zu haben. –
@MattHouser Es kann rund 100 Käufer bei max sein –
@MattHouser Eine andere Tabelle für solch eine kleine Liste ist etwas, das ich gerne vermeiden würde, ich denke in meinem Fall, nur eine Liste ist ausreichend und effizienter. –