我想将以下代码转换为spring data mongodb代码。
[
{
$addFields: {
children: {
$reduce: {
input: "$children",
initialValue: {
level: -1,
presentChild: [],
prevChild: []
}
}
}
}
}
]
我尝试了以下方法:
val agg = newAggregation(
Aggregation.addFields()
.addField("children")
.withValueOf(
ArrayOperators.Reduce.arrayOf("children").withInitialValue(
mapOf(
"level" to -1,
"presentChild" to emptyList<Any>(),
"prevChild" to emptyList<Any>()
)
)
).build()
)
输出:
[
{
$addFields: {
children: {
val$initialValue: {
level: -1,
presentChild: [],
prevChild: []
}
}
}
}
]
这不是预期的结果。
我在网上搜索但没有找到任何结果。
我该怎么办?
您的查询和 Java 代码都缺少
in
表达式。它应该看起来像这样。
Aggregation.addFields().addField("children")
.withValueOf(
ArrayOperators.Reduce.arrayOf("children")
.withInitialValue(<initialValue>)
.reduce(<in>)
).build();
用适当的初始值和归约表达式替换占位符。