Co szukasz jest metoda includeTotalCount
na obiekcie stół/zapytań (niestety brakuje w dokumentacji, będę zgłosić błąd do zespołu produktu, aby mieć go na stałe).
Po wywołaniu read
na obiekcie zapytania, będzie on domyślnie zwracał 50 (IIRC, liczba może być różna) elementy z niego, aby uniemożliwić naiwnemu wywołaniu zwracanie wszystkich elementów w bardzo dużej tabeli (a zatem albo ponoszenie koszt przepustowości wychodzącej zarezerwowanych usług lub trafienie przydziału dla wolnych). Zatem uzyskanie wszystkich elementów w tabeli i uzyskanie długości wyników może nie być dokładne.
Jeśli chcesz tylko liczby elementów w tabeli, możesz użyć poniższego kodu: zwracając elementy zero i całkowitą liczbę.
var table = client.getTable('tableName');
table.take(0).includeTotalCount().read().then(function (results) {
var count = results.totalCount;
new Windows.UI.Popups.MessageDialog('Total count: ' + count).showAsync();
});
Jeśli chcesz zapytać pewne elementy, a także całkowitą liczbę (tj stronicowania), wystarczy dodać odpowiednie take()
i skip()
połączeń, a także includeTotalCount
również.
Dziękuję carlosfigueira! To działało :). I czy istnieje sposób zrób ten proces na stronie błękitnej i zwróć wynik liczby wierszy sam do aplikacji klienckiej? –
Byłoby wspaniale dostarczyć prostą metodę 'Query'' .count() ', która zrobiła dokładnie to. Coś jak ...' klient .getTable ('tableName'). count() 'zamiast' read() ' aby uzyskać wynik skalarny; – SliverNinja
Dobry pomysł, przedstawi sugestię zespołowi ds. Produktu. – carlosfigueira