如何使用Aggregation.project方法编写弹簧数据查询



我正在尝试使用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");

相关内容

  • 没有找到相关文章

最新更新