我正在尝试使用Aggregation.project方法编写一个等效的Spring数据代码,以获得以下阶段(aggregations中的项目阶段-Mongo DB(的结果
$project:
{
_id:0,
'id':1,
'displayid':1,
'level':{'$add':[{'$size':'$childlevels'}, 1]}
}
输出:
displayId: "ABCD"
id: 125
level: 4
"level"字段显示(上一阶段的子级别的数组大小+1(的总和的结果。
我正在考虑下面这样的事情,但这并没有给出预期的结果。
ProjectionOperation projectStage = Aggregation.project()
.andExclude("_id")
.andInclude(ID)
.andInclude(DISPLAY_ID)
.andExpression("{'$add':[{'$size':'$childlevels'}, 1]}").as("level");
感谢您的帮助。
您没有提到您得到的错误/结果。但这应该奏效。
ProjectionOperation projectStage = Aggregation.project()
.andExclude("_id")
.andInclude("id")
.andInclude("displayId")
.and(ArithmeticOperators.Add.valueOf(ArrayOperators.Size.lengthOfArray("childlevels")).add(1)).as("level");