DynamoDB 使用条件表达式而不是键放置项目
DyamoDB put item with ConditionExpression instead of key
由于email不是主键,所以需要根据email字段判断一条记录的唯一性。这是行不通的。用户得到保存。 DynamoDB 是否不允许在另一个字段而不是键上使用 conditionExpression?
const params = {
TableName: process.env.tableName,
Item: user.toItem(),
ConditionExpression: "#email <> :email",
ExpressionAttributeNames: {
"#email": "email",
},
ExpressionAttributeValues: {
":email": body.email,
},
};
await docClient.put(params).promise();
条件有效,但conditional puts防止的是覆盖记录具有相同的主键:
The PutItem operation overwrites an item with the same key (if it exists). If you want to avoid this, use a condition expression. This allows the write to proceed only if the item in question does not already have the same key.
为了防止重复的电子邮件,请将其作为您 table 主键的一部分,或者在写入 DynamoDB 之前手动检查唯一性。
由于email不是主键,所以需要根据email字段判断一条记录的唯一性。这是行不通的。用户得到保存。 DynamoDB 是否不允许在另一个字段而不是键上使用 conditionExpression?
const params = {
TableName: process.env.tableName,
Item: user.toItem(),
ConditionExpression: "#email <> :email",
ExpressionAttributeNames: {
"#email": "email",
},
ExpressionAttributeValues: {
":email": body.email,
},
};
await docClient.put(params).promise();
条件有效,但conditional puts防止的是覆盖记录具有相同的主键:
The PutItem operation overwrites an item with the same key (if it exists). If you want to avoid this, use a condition expression. This allows the write to proceed only if the item in question does not already have the same key.
为了防止重复的电子邮件,请将其作为您 table 主键的一部分,或者在写入 DynamoDB 之前手动检查唯一性。