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

时间:2013-03-25 13:43:44

标签: javascript azure windows-8 windows-store-apps azure-mobile-services

正在开发一个Windows商店的javascript应用程序。该应用程序使用来自azure移动服务的数据。 请考虑以下代码:

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

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

什么代码将返回itemTable ??

中存在的行数

3 个答案:

答案 0 :(得分:5)

您正在寻找的是表/查询对象上的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 as好。

答案 1 :(得分:5)

如果有人来到这里并且对如何仅在C#上获得totalCount感兴趣(就像我一样),那么你就是这样做的:

var table =  MobileService.GetTable<T> ();
var query = table.Take(0).IncludeTotalCount();
IList<T> results = await query.ToListAsync ();
long count = ((ITotalCountProvider)results).TotalCount;

来自此博文here

答案 2 :(得分:2)

您需要在read()上执行table query,然后获取结果的length

var items, numItems;
itemTable.read().then(function(results) { items = results; numItems = items.length; });

如果您只显示记录计数而不是整个结果 - 您应该只选择ID列以减少传输的数据量。我没有在JS Query API中看到count()方法可用来满足此需求。

var itemTable = mobileService.getTable('item').select('itemID');