DynamoDB'de ConditionExpression yapmaya çalışıyorum, depolanmış bir booleanın gerçek olup olmadığını kontrol etmek için (bu örnekte, kullanıcının zaten doğrulanmış olup olmadığına bakılmaksızın);DynamoDB putItem ConditionExpression "boolean" true
çalışmıyorvar query = {
TableName: tableName,
Item: {
email: email,
verified: false,
verifyToken: token
},
ConditionExpression: 'attribute_exists(email) AND verified = :bool',
ExpressionAttributeValues: {
":bool":"false"
}
};
dynamodb.put(query, function(err, data){
if (err) return fn(err)
fn(null, data);
});
, bu ne olursa olsun çağrı koşulu denetimi başarısız: gibi javascript DocumentClient SDK (teşekkürler @ Shimon-tolts için) kullanılarak, kod görünüyor.
Hemen hemen ben (pseudocode) gerekenler:
IF email already exists AND verified equals false
THEN allow PUT
IF email already exists AND verified equals true
THEN don't allow PUT
IF email does not exist
THEN allow PUT
Herhangi bir fikir?
İyi bir çağrı, tüm veritabanı çağrılarımı DocumentClient yerine taşıdım, ancak yine de ConditionExpression'u anlayamıyorum. Hemen hemen ben (pseudocode) ne gerek eposta zaten var EĞER VE doğrulanmadı SONRA eposta zaten var EĞER PUT izin yanlış VE doğrulanmış SONRA SONRA izin eposta yok IF PUT izin vermez doğrudur eşittir PUT (Ana postayı güncelleyeceğim) – csilk