我正在开发一个 Windows 商店 javascript 应用程序。该应用程序使用来自 azure 移动服务的数据。考虑下面的代码:
var itemTable = mobileService.getTable('item');
//item is the table name stored in the azure database
该代码获取整个表item
并将其保存到一个变量itemTable
中。
什么代码将返回存在的行数itemTable
??
我正在开发一个 Windows 商店 javascript 应用程序。该应用程序使用来自 azure 移动服务的数据。考虑下面的代码:
var itemTable = mobileService.getTable('item');
//item is the table name stored in the azure database
该代码获取整个表item
并将其保存到一个变量itemTable
中。
什么代码将返回存在的行数itemTable
??
如果有人来到这里并对如何仅在 C# 上获取 totalCount 感兴趣(比如我),那么您就是这样做的:
var table = MobileService.GetTable<T> ();
var query = table.Take(0).IncludeTotalCount();
IList<T> results = await query.ToListAsync ();
long count = ((ITotalCountProvider)results).TotalCount;
归功于这里的这篇博文
您正在寻找的是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
以及。
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');