首页 > 解决方案 > 使用 DynamoDB.Client.Scan(),如何检索一个属性不为空的所有记录?

问题描述

使用 DynamoDB.Client.Scan(),如何检索一个属性不为空的所有记录?

就像是:

res = db.scan({
    table_name: "Records", 
    filter_expression: "Fiction != :fiction", 
    expression_attribute_values: { 
        ":fiction" => nil
    }
})

当然,这不起作用

标签: rubyamazon-dynamodbdynamodb-queries

解决方案


如果您正在寻找现有值,则应使用attribute_exists关键字,请参阅文档

filter_expression: "attribute_exists(Fiction)"

此外,您使用了错误的比较器。DynamoDB 使用<>而不是!=用于不等式断言。查看文档


推荐阅读