Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Spring mongo使用对象的2个属性进行计数查询_Java_Mongodb_Spring Boot_Aggregation Framework - Fatal编程技术网

Java 使用Spring mongo使用对象的2个属性进行计数查询

Java 使用Spring mongo使用对象的2个属性进行计数查询,java,mongodb,spring-boot,aggregation-framework,Java,Mongodb,Spring Boot,Aggregation Framework,我正在使用mongo存储以下数据 Class Restaurant { String status; String name; String location; } 我的mongo中的数据量非常大。我想根据给定列表中餐厅的状态和名称获取计数 有两个输入列表: List<String> restaurants = {'PizzaHub', 'Cheese&u', 'FoodForU', 'Mcdonalds'} List<String> status

我正在使用mongo存储以下数据

Class Restaurant {
  String status;
  String name;
  String location;
}
我的mongo中的数据量非常大。我想根据给定列表中餐厅的状态和名称获取计数

有两个输入列表:

List<String> restaurants = {'PizzaHub', 'Cheese&u', 'FoodForU', 'Mcdonalds'}
List<String> status = {'Open', 'Closed', 'Open', 'Open'}

public interface RestaurantRepository extends MongoRepository<Restaurant, String> {
     public long countByNameAndStatus(String name, String status);
}

请提供一些示例,例如当前代码会发生什么情况?你算了多少?但是你的预期数量是多少?为什么会是这样?@palaѕn预期数量应该是所有“PizzaHub”类型的餐厅,它们是“开放的”,“Cheese&u”类型的餐厅是“关闭的”,“FoodForU”类型的餐厅是“开放的”,而“Mcdonalds”类型的餐厅是“开放的”。我得到的数量是正确的,但查询时间很长。我想通过对给定的列表使用聚合查询来减少时间,而不是对列表中的每个元素单独启动聚合查询。好的,请发布您对聚合查询的尝试,并明确说明您遇到的问题。您可以尝试使用repository方法以及
@query
注释:@prasad\ucode>@query的工作原理与CountByName和Status完全相同。Mongo repository通过函数名自动理解,不需要使用
@Query
。请提供一些示例,例如当前代码会发生什么情况?你算了多少?但是你的预期数量是多少?为什么会是这样?@palaѕn预期数量应该是所有“PizzaHub”类型的餐厅,它们是“开放的”,“Cheese&u”类型的餐厅是“关闭的”,“FoodForU”类型的餐厅是“开放的”,而“Mcdonalds”类型的餐厅是“开放的”。我得到的数量是正确的,但查询时间很长。我想通过对给定的列表使用聚合查询来减少时间,而不是对列表中的每个元素单独启动聚合查询。好的,请发布您对聚合查询的尝试,并明确说明您遇到的问题。您可以尝试使用repository方法以及
@query
注释:@prasad\ucode>@query的工作原理与CountByName和Status完全相同。Mongo存储库通过函数名自动理解,不需要
@Query
for(int i = 0; i < restaurants.size(); i++) {
    restaurantRepo.countByNameAndStatus(restaurants.get(i), status.get(i))
}
{
   PizzaHub: 1307,
   Cheese&u: 154,
   FoodForU: 964,
   Mcdonalds: 1034
}