【发布时间】:2021-08-16 14:21:17
【问题描述】:
我有这样一份文件:
{
"steps": ["step 1", "step 2"]
}
我想以这种方式展示我的结果:
{
"steps": [
{"name": "step 1", "index": 1},
{"name": "step 2", "index": 2}
]
}
我用过这样的投影:
{
"$project": {
"steps": {
$reduce: {
input: "$steps",
initialValue: [],
in: {$concatArrays: [
"$$value",
[{"name": "$$this", "index": {$add: [1, {$size: "$$value"}]}}]
]}
}
}
}
}
它的工作原理!也许这不是最好的解决方案,但它确实有效。
我的问题是用 Spring-MongoDB 在 Java 中转换这段代码。
var reduce = ArrayOperators.arrayOf("steps")
.reduce(
ArrayOperators.arrayOf("$$value").concat( ??? ))
.startingWith(Collections.EMPTY_LIST);
如何创建一个 AggregationExpression 来映射具有键 name 和 index 的对象?
【问题讨论】:
标签: java mongodb spring-data