Amazon dynamodb dynamodb中唯一主键的条件表达式
如果主键不存在,我需要插入一个文档。我试图用条件表达式解决这个问题,但似乎失败了Amazon dynamodb dynamodb中唯一主键的条件表达式,amazon-dynamodb,Amazon Dynamodb,如果主键不存在,我需要插入一个文档。我试图用条件表达式解决这个问题,但似乎失败了 const primaryKey = "4234241"; const tableSpec = { TableName: 'tableName', Item: params, ConditionExpression: '#primaryId <> :primaryId', ExpressionAttributeNames: {'#primaryId': 'primaryI
const primaryKey = "4234241";
const tableSpec = {
TableName: 'tableName',
Item: params,
ConditionExpression: '#primaryId <> :primaryId',
ExpressionAttributeNames: {'#primaryId': 'primaryId'},
ExpressionAttributeValues: {
':primaryValue': primaryValue
}
};
var docClient = new AWS.DynamoDB.DocumentClient();
docClient.put(tableSpec, function (err, data) {
if (err) {
console.log(err);
}
});
常量primaryKey=“4234241”;
const tableSpec={
TableName:“TableName”,
项目:参数,
条件表达式:'#primaryId:primaryId',
表达式属性名称:{'#primaryId':'primaryId'},
表达式属性值:{
“:primaryValue”:primaryValue
}
};
var docClient=new AWS.DynamoDB.DocumentClient();
put(表规范,函数(错误,数据){
如果(错误){
控制台日志(err);
}
});
“ConditionalCheckFailedException:条件请求失败”是console.log语句的输出 ConditionalCheckFailedException的唯一解决方案是在插入之前获取并检查 当具有此主键的对象存在时,是否会引发异常?这样就可以了,只要捕获一个异常,如果需要(可能记录该对象已经存在)处理它,然后继续 这样,您将进行一次调用,如果创建了对象,它将返回成功;如果对象已经存在,它将返回异常(您可以捕获并忽略该异常)。这称为“检查然后执行”反模式