javascript - DynamoDB putItem ConditionExpression "boolean"真

标签 javascript amazon-web-services amazon-dynamodb

我正在尝试在 DynamoDB put 中执行 ConditionExpression 以检查存储的 bool 值是否为真(在此示例中,用户是否已经过验证不要运行 put),我正在使用 javascript DocumentClient SDK(感谢@shimon-tolts),代码如下:

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因为它适用于 javascript 对象。 要执行条件表达式,您必须指定 ExpressionAttributeNames 和 ExpressionAttributeValues 例如::

ConditionExpression: "#yr <> :yyyy and title <> :t",
ExpressionAttributeNames:{"#yr":"year"},
ExpressionAttributeValues:{
    ":yyyy":year,
    ":t":title
}

你可以看到更多的例子here并阅读更多 here

关于javascript - DynamoDB putItem ConditionExpression "boolean"真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36441987/

相关文章:

amazon-web-services - 部署期间 ECS 服务中所需的任务计数

memcached - AWS 上的分布式计数器

amazon-dynamodb - 将访问控制与 IAM 策略结合使用时的 DynamoDB 和 GSI

javascript - 当 v-model 值更改时,自定义 Vue 选择组件不更新所选选项

javascript - 通过表单提交 JSON 通过 jquery 提交

amazon-web-services - 有没有办法保持 ELB 粘性 session ,即使它连接到的实例失败?

node.js - 在 AWS Lambda 中使用托管在两个不同区域的两个不同的 AWS 资源?

amazon-dynamodb - 尝试的条件约束不是可索引的操作

javascript - 如何使用脚本从 Google 表格中 MMM 格式的给定日期中提取月份

javascript - Chart.JS 多线图表,来自 JSON 的行数未知