gpt4 book ai didi

java - 如何将聚合结果映射到java pojo

转载 作者:行者123 更新时间:2023-12-02 13:29:54 25 4
gpt4 key购买 nike

Aggregation aggregation = newAggregation(
group("$meta_data.user_data.first_name", "$meta_data.user_data.last_name", "$meta_data.user_data.profile_pic", "$user_id")
);
AggregationResults<UsersMongoResult> groupResults = mongoTemplate.aggregate(aggregation, "chatuser_log", UsersMongoResult.class);

public class UsersMongoResult {
private String first_name;
private String last_name;
private String profile_pic;
private String user_id;
}

当我将结果映射到 pojo 类时,仅映射了 user_id。如何将其他字段映射到特定字段。我也无法在互联网上找到解决方案。

最佳答案

您可以尝试以下聚合以获得所需的结果。

Spring默认使用部分字段名作为键名。例如,user_data.first_name 将是 meta_data.user_data.first_name 的键名称,也是映射失败的原因。

更新为使用 MongoTemplate Fields group 变体将字段键名称显式映射为 java 类字段名称,以便 spring 正确映射它们。

Aggregation aggregation = newAggregation(
group(Fields.fields().and("first_name", "meta_data.user_data.first_name").and("last_name","meta_data.user_data.last_name").and("profile_pic", "meta_data.user_data.profile_pic").and("user_id", "user_id"))
);

关于java - 如何将聚合结果映射到java pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43231235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com