PocoDynamo扫描带表达式的项目数

时间:2019-05-17 03:40:56

标签: servicestack

我需要根据一个标准计算记录数。 ScanItemCount不使用过滤器表达式,因此我想探索获取记录总数的最佳方法。

下面是我用来获取计数的代码示例。有更好的替代方法吗?另外,如果数据库中有给定客户的10,000条记录,那么查询会返回准确的计数,还是我必须使用LastEvaluatedKey来遍历结果。

 var total = (long)_dbConn.Scan<int>(new ScanRequest(DynamoMetadata.GetTable<T>().Name) {
            FilterExpression = "#col = :val",
            ExpressionAttributeNames = new Dictionary<string, string> { { "#col", "CustomerId" } },
            ExpressionAttributeValues = new Dictionary<string, AttributeValue> { { ":val", new AttributeValue(CustomerId.ToString()) } },
        }, (Func<ScanResponse, IEnumerable<int>>)(r => (IEnumerable<int>)new int[1]
        {
            r.Count
        })).Sum();

我也想避免返回所有列,而是返回标量结果。

0 个答案:

没有答案