如何从 azure 数据库中获取行数?

我正在开发一个 Windows 商店 JavaScript 应用程序.该应用程序使用来自 azure 移动服务的数据.考虑下面的代码:

Am working on a windows store javascript application. The application uses data from azure mobile services. Consider the below code:

var itemTable = mobileService.getTable('item');
//item is the table name stored in the azure database

代码获取整个表 item 并将其保存到变量 itemTable.

The code fetches the entire table item and saves it to a variable itemTable.

什么代码将返回 itemTable 中存在的行数??

What code will return the no of rows present in itemTable??

推荐答案

您要查找的是表/查询对象上的 includeTotalCount 方法(不幸的是,文档中缺少它,我会向产品团队提交错误以修复它).

What you're looking for is the includeTotalCount method on the table/query object (unfortunately it's missing from the documentation, I'll file a bug to the product team to have it fixed).

当您在查询对象上调用 read 时,默认情况下它将返回 50 个(IIRC,数字可能不同)元素,以防止天真的调用返回非常大表(因此会产生预留服务的出站带宽成本,或者达到免费服务的配额).所以获取表格中的所有元素,获取结果的长度可能并不准确.

When you call read on the query object, it will return by default 50 (IIRC, the number may be different) elements from it, to prevent a naïve call from returning all elements in a very large table (thus either incurring the outbound bandwidth cost for reserved services, or hitting the quota for free ones). So getting all the elements in the table, and getting the length of the results may not be accurate.

如果你想要的只是表格中元素的数量,你可以使用下面的代码:返回零个元素,以及总数.

If all you want is the number of elements in the table, you can use the code below: returning zero elements, and the total count.

    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 也是如此.

If you want to query some elements, and also include the total count (i.e., for paging), just add the appropriate take() and skip() calls, and also the includeTotalCount as well.

相关文章