我有一个循环,可以遍历一小时内发生的事件。每个事件都有一个称为下限和高度的字段。我的任务是获取每个楼层的最大高度值。我将不胜感激。我也想知道是否可以使用更新中的max方法。
我尝试从更新中使用max方法,但是,当循环不断迭代时,maxHeight总是被覆盖。 我也尝试过使用一些类变量来保存我需要的maxHeight值,但是,每个楼层的maxHeight应该是唯一的,并且使用全局变量会在所有楼层之间返回maxHeight。
Query query = new Query();
Update update = new Update();
events.forEach(event -> {
getMaxHeight(update, tripEntity, tenant.toLowerCase());
});
mongoTemplate.upsert(query, update, "somecollection");
private void getMaxHeight(Update update, Event event) {
update.max(event.getFloor(), "maxHeight"), event.getHeight());
}
答案 0 :(得分:0)
好吧,我最终在循环中使用upsert并使用max。
events.forEach(event -> {
Query query = new Query();
Update update = new Update();
getMaxHeight(update, tripEntity, tenant.toLowerCase());
mongoTemplate.upsert(query, update, "somecollection");
});
private void getMaxHeight(Update update, Event event) {
update.max(event.getFloor(), "maxHeight"), event.getHeight());
}