Java 弹簧数据+;MongoDB无效引用错误
以下是我的代码(Spring数据): 在不分组的情况下执行聚合:Java 弹簧数据+;MongoDB无效引用错误,java,spring,mongodb,spring-data,Java,Spring,Mongodb,Spring Data,以下是我的代码(Spring数据): 在不分组的情况下执行聚合: Aggregation aggregation = Aggregation.newAggregation(matchOperation,addFields, sortOperation,limitOperation,projectionOperation); 没有错误,所以我假设分组有问题。知道我做错了什么吗?我还想做的是过滤嵌入元素的列表,计算这些元素的一个属性的和,并根据它进行排序。也许有类似的方法可
Aggregation aggregation = Aggregation.newAggregation(matchOperation,addFields,
sortOperation,limitOperation,projectionOperation);
没有错误,所以我假设分组有问题。知道我做错了什么吗?我还想做的是过滤嵌入元素的列表,计算这些元素的一个属性的和,并根据它进行排序。也许有类似的方法可以做到这一点
编辑
这是我的文件:
@Document
public class PickupUser {
@Id
private String id;
private String discordId;
private List<UserModeStats> stats;
private String name;
}
我要创建的输出文档:
@Data
public class UserSummaryChannel {
public UserSummaryChannel() {}
private String id;
private String discordId;
private List<UserModeStats> stats;
//private Long allGamesOnChannel;
}
@数据
公共类UserSummaryChannel{
public UserSummaryChannel(){}
私有字符串id;
私有字符串不协调;
私人名单统计;
//私人长频道;
}
我不想包括
UserSummaryChannel
的allGamesOnChannel
属性(无论是否使用该字段,聚合都不起作用)。这不是真正的解决方案,但找到了实现我目标的另一种方法。我自己“实施”了排序操作,因此:
SortOperation sortOperation = Aggregation.sort(new Sort(Sort.Direction.DESC, "allGamesOnChannel"));
现在我有这个:
AggregationOperation sortOperation2 = (AggregationOperationContext aggregationOperationContext) -> {
DBObject dbObject =
new BasicDBObject("allGamesOnChannel", 1);
return new BasicDBObject("$sort", dbObject);
};
Rest聚合操作保持不变。没有抛出异常 您的mongo文档看起来如何更新的问题和包含的文档。
@Data
public class UserSummaryChannel {
public UserSummaryChannel() {}
private String id;
private String discordId;
private List<UserModeStats> stats;
//private Long allGamesOnChannel;
}
SortOperation sortOperation = Aggregation.sort(new Sort(Sort.Direction.DESC, "allGamesOnChannel"));
AggregationOperation sortOperation2 = (AggregationOperationContext aggregationOperationContext) -> {
DBObject dbObject =
new BasicDBObject("allGamesOnChannel", 1);
return new BasicDBObject("$sort", dbObject);
};