【发布时间】:2020-03-23 09:41:38
【问题描述】:
我需要从 MongoDB 聚合操作返回 List<AspectTemplate>。
public class AspectTemplate {
private ObjectId id;
private String title;
private List<String> options;
}
在 Spring MongoDB 存储库中,我像这样映射 AggregationResults
ProjectionOperation projectOperation = Aggregation.project()
.and("easpects").concatArrays("iaspects").as("allaspects").andExclude("_id");
AggregationResults<AspectTemplate> aspectTemplates = this.mongoOperations.aggregate(Aggregation.newAggregation(
matchOperation,
lookupOperation, projectOperation
), COLLECTION_NAME, AspectTemplate.class);
return aspectTemplates.getMappedResults();
原始结果是
但aspectTemplates.getMappedResults() 返回以下内容
如何将原始结果中的allaspects ArrayList 返回为List<AspectTemplate?
【问题讨论】:
-
你的
ProjectionOperation需要返回AspectTemplate字段(id, title, options),但它返回allaspects -
@Valijon 你能输入一小段代码吗?如何将当前投影转换为返回字段。
-
当然,但我需要知道
allaspects字段后面隐藏的是什么:D。如果您在投影之前在 MongoDB CLI 中运行聚合,您会得到什么 JSON? (请在您的问题中发布) -
@Valijon 添加了
allaspects元素的截图
标签: java spring mongodb spring-boot spring-mongodb