当使用Loopback的计数终点时,我们会得到意外且不一致的结果。使用filter[where]始终返回表中的总行数,忽略任何筛选器。例如,以下调用总是返回9的值,这是不正确的(给定以下数据):
/api/class/count?filter[where][companyrowid]=1
类表数据(MySQL)
rowid description companyrowid
3367 test1 0
3366 test2 0
3364 Asia Division 1
3365 Australia Division 1
3362 Canada Division 1
3363 Europe Division 1
3359 US East Division 1
3361 US Midwest Division 1
3360 US West Division 1
奇怪的是,使用'where[companyid]=1'返回正确值7。对http请求对象的仔细检查表明,过滤器[where][…]和where[..] 最大的问题是过滤器[where]忽略过滤器。/api/class/count?filter[where][companyrowid]=1
/api/class/count?where[companyrowid]=1
count()方法只接受where子句而不是过滤器。所以你的REST API应该是这样的
/api/class/count?[where][companyrowid]=1