2014-10-10 9 views

Odpowiedz

6

Nie są one dostarczane. Możesz je zaimplementować, wykonując zapytanie lub skanując za pomocą filtru i obliczając wartości samodzielnie. Aby nieco uprościć elementy, można użyć parametru Count parameter, aby zwrócić tylko liczbę elementów, które zostaną zwrócone przez to zapytanie/skanowanie zamiast rzeczywistych elementów. (Zwróć uwagę, że licznik zwraca tylko częściową liczbę - możesz potrzebować zliczać sumy na wielu stronach zapytań/skanów).

Alternatywnie, możesz zachować osobną tabelę, która przechowuje te wartości dla ciebie, gdy główne tabele są aktualizowane (zauważ, że to może być trudne do zsynchronizowania, będziesz musiał użyć jakiejś formy zarządzania transakcjami i wziąć pod uwagę dynamiczny model konsystencji).

+0

liczyć tylko jest obsługiwany https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count – cjungel

+1

Niezupełnie - zwraca liczyć tylko częściowe wyniki z tej kwerendy - Ty nadal trzeba samemu zebrać całkowitą liczbę. Skopiowałem i wkleiłem odpowiednie uwagi do dokumentu z twojego linku tutaj: "* Jeśli pasujące elementy dla wyrażenia filtru lub warunku zapytania są większe niż 1 MB, liczba zawiera częściową liczbę całkowitej liczby elementów pasujących do żądania. pobierz pełną liczbę pasujących elementów, weź wartość LastEvaluatedKey z poprzedniego żądania i użyj tej wartości jako klucza ExclusiveStartKey w następnym żądaniu. Powtarzaj tę czynność, dopóki DynamoDB nie zwróci klucza LastEvaluatedKey. * " – Krease

+0

Masz rację, możesz muszą zsumować wszystkie częściowe liczby, aby uzyskać całkowitą liczbę. Ale nadal jest to bardziej wydajne niż pobieranie pojedynczych przedmiotów i liczenie ich po stronie aplikacji. Oczywiście to działałoby tylko dla zliczeń, a nie dla żadnej innej funkcji agregującej. – cjungel