android在dynamodb扫描中使用contains过滤器

5cnsuln7  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(379)

我有awd发电机db表如下。

现在我想过滤它如下。

为此,我使用了以下代码,在我的代码中得到0个结果。我的代码有什么问题。如何修复它?

public ScanResult getAllMemos() {
    ScanRequest scanRequest = new ScanRequest()
            .withTableName(DB_NAME)
            .withFilterExpression("contains(imgName,thumbnail)");
    return util.getAmazonDynamoDBClient(getActivity()).scan(scanRequest);
}

没有过滤器表达式,我得到所有的结果。

hc2pp10m

hc2pp10m1#

就像在注解中讨论的那样,您需要用过滤器的值创建一个表达式属性值Map并使用它。
尝试以下操作:

public ScanResult getAllMemos() {

    Map<String, AttributeValue> expressionAttributeValues =
        new HashMap<String, AttributeValue>();
    expressionAttributeValues.put(":val", new AttributeValue().withS("thumbnail"));

    ScanRequest scanRequest = new ScanRequest()
            .withTableName(DB_NAME)
            .withFilterExpression("contains(imgName,:val)")
            .withExpressionAttributeValues(expressionAttributeValues);
    return util.getAmazonDynamoDBClient(getActivity()).scan(scanRequest);
}

相关问题