Что вы ищете является includeTotalCount
метод на объекте таблицы/запроса (к сожалению, не хватает в документации, я подам ошибка в команде продукта, чтобы он фиксирован).
Когда вы вызываете read
на объект запроса, он будет возвращать по умолчанию 50 элементов (IIRC, число может отличаться) от него, чтобы предотвратить наивный вызов от возврата всех элементов в очень большой таблице (таким образом, стоимость исходящей полосы пропускания для зарезервированных услуг или попадание в квоту для бесплатных). Поэтому получение всех элементов в таблице и получение результатов могут быть неточными.
Если все, что вы хотите, это количество элементов в таблице, вы можете использовать следующий код: возврат нулевой элементов и общее количество.
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();
});
Если вы хотите запросить некоторые элементы, а также включает в себя общее количество (т.е. для подкачки), просто добавьте соответствующие take()
и skip()
вызовов, а также includeTotalCount
, а также.
Спасибо, Карлосфигера! Это сработало :). И есть ли способ выполните этот процесс на лазурной стороне и верните результат подсчета строк только для клиентского приложения? –
Было бы здорово предоставить простой метод 'Query'' .count() ', который сделал именно это. Что-то вроде ...' client .getTable ('tableName'). count() 'вместо' read() ' получить скалярный результат; – SliverNinja
Хорошо, напишите предложение с командой продукта. – carlosfigueira