PocoDynamo Scan Количество элементов с выражением - PullRequest
1 голос
/ 17 мая 2019

Мне нужно посчитать количество записей на основе критериев. ScanItemCount не принимает выражения фильтра, поэтому я хотел найти наилучший способ получения общего количества записей.

Ниже приведен пример кода, который я использовал для подсчета. Есть ли лучшая альтернатива этому? Кроме того, если в базе данных имеется 10000 записей для данного клиента, запрос будет возвращать точное количество, или мне придется использовать 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();

Также я хотел бы избежать возврата всех столбцов, но вместо этого скалярный результат.

...