public interface UserRepository extends JpaRepository<User, Integer> {
public List<User> findByRoles( String role);
}
返回2191
SELECT value count(1) from c where c.FormName = "Newsletter"
返回697
SELECT value count(1) from c where contains (c.FormName, "Newsletter")
返回2191
SELECT value count(1) from c where startswith(c.FormName, "Newsletter")
返回701
我希望所有这些请求都返回相同的值2191,但是SELECT value count(1) from c where endswith(c.FormName, "Newsletter")
和contains
返回一个意外值。
这正常吗?
答案 0 :(得分:0)
是正常的。所有这些查询将消耗一些RU。每个查询将消耗的RU是不同的,因为它们的“负载”是不同的。
在执行SELECT value count(1)
时,您将迫使Cosmos在单个查询中返回其所有结果。但是,Cosmos DB仅按设计返回分页结果。这种分页还有助于将负载分散到许多查询中,并将其汇总到客户端站点上。 SELECT value count(1)
不允许这种聚合,因此您得到的响应是请求用完RU之前的数量。
如果您进行了SELECT c.id from c where blablabla
,并且使用了while(query.HasMoreResults)
和query.ExecuteNextAsync()
方法并在客户端汇总了计数,那么您应该得到相同的数字。