gpt4 book ai didi

spring - FieldPath 字段名不能包含 '.'

转载 作者:可可西里 更新时间:2023-11-01 10:41:01 26 4
gpt4 key购买 nike

对于 mongodb 3.2,以下查询成功运行。

db.user_log.aggregate([{ "$match" : { "user_id" : "1" , "page_id" : "678761252281073"}} , { "$sort" : { "meta_data.access_times" : -1}} , { "$group" : { "_id" : { "first_name" : "$meta_data.user_data.first_name" , "last_name" : "$meta_data.user_data.last_name" , "profile_pic" : "$meta_data.user_data.profile_pic" , "user_id" : "$user_id" , "star_value" : "$star_value" , "access.times" : "$meta_data.access_times"}}}])

Java 代码 -

Aggregation aggregation =  newAggregation(
match(Criteria.where("user_id").is("123")),
sort(Sort.Direction.DESC, "meta_data.access_times"),
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").and("star_value", "$star_value").and("access.times", "$meta_data.access_times"))
);
AggregationResults<UsersMongoResult> groupResults = mongoTemplate.aggregate(aggregation, "user_log", UsersMongoResult.class);

但升级到 3.4 后出现以下异常

org.springframework.dao.InvalidDataAccessApiUsageException: Command execution failed: Error [FieldPath field names may not contain '.'.]

这背后的原因是什么,我该如何解决这个问题?

最佳答案

问题是 access.times,在您的字段中使用 . 是一种不好的做法,因为它会与嵌套元素发生冲突。

关于spring - FieldPath 字段名不能包含 '.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43694556/

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