使用Loopback的计数结束点时,我们会收到意外且不一致的结果。使用过滤器[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
奇怪的是,使用'其中[companyid] = 1' 会返回正确值7 。仔细检查http请求对象会显示过滤器[where] [...] 和其中[..] 过滤器实际上分别存储并产生不同的结果:
/api/class/count?filter[where][companyrowid]=1
/api/class/count?where[companyrowid]=1
最大的问题是过滤器[where] 忽略过滤器。
答案 0 :(得分:3)
count()方法只接受where子句而不是过滤器。 所以你的REST API应该是这样的
/api/class/count?[where][companyrowid]=1