DynamoDB putでConditionExpressionを実行しようとしていますが、ストアされたブール値がtrueであるかどうかをチェックしています(この例では、ユーザーが既にputを実行していないかどうかを確認します)。 JavaScriptのDocumentClient SDK(感謝に@シモン・tolts)を使用して、コードは次のようになります。DynamoDB putItem ConditionExpression "boolean" true
動作しませんvar 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);
});
、それがどんなコール状態のチェックに失敗しません。
ほとんど私が(擬似コードで)必要なもの:
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
任意のアイデア?
いいえ、DocumentClientにすべてのデータベース呼び出しを移動しましたが、依然としてConditionExpressionを把握できません。 はかなり私は(擬似コードで)必要なもの メールが既に存在する場合、検証はTHENメールが既に存在する場合 をPUTできるよう 偽、検証が THEN THENできるように電子メールが 存在しない場合 をPUT許可していない真等しい等しくPUT (私はメインポストを更新します) – csilk