在Spring Data Mongo 1.3.2-RELEASE中使用聚合时,我遇到了项目操作的问题。当我使用Spring Data Mongo 1.3.1-RELEASE:
时,相同的操作正常首先,我通过仅投影两个字段并将它们重命名为x和y来减少我的文档。 然后我在这两个字段(x,y)上调用一个组操作,包括一个计数操作(名称为xPerY)。 在这个分组之后,我想要预测这两个现在嵌套在_id字段中的字段 在非嵌套字段中称为x和y(不带_id)。结果我希望得到的文件只有 xPerY,x和y。以下代码适用于1.3.1-RELEASE,但不适用于 1.3.2-RELEASE:
AggregationOperation projectFirst = Aggregation.project( "x", "y" ).and( xField ).as( "x" ).and( yField ).as( "y" );
AggregationOperation group = Aggregation.group( "x", "y" ).count( ).as( "xPerY" );
AggregationOperation project = Aggregation.project( "xPerY", "x", "y" ).andExclude( "_id" );
aggregation = Aggregation.newAggregation( projectFirst, group, project );
在1.3.2-RELEASE中,字段x和y将在聚合后得到值0。
1.3.2-RELEASE中的AggregationOperation项目生成以下json: {“$ project”:{“xPerY”:1,“x”:1,“y”:1,“_ id”:0}}
1.3.1-RELEASE中的AggregationOperation项目生成以下json: {“$ project”:{“xPerY”:“$ xPerY”,“x”:“$ _id.x”,“y”:“$ _id.y”,“_ id”:0}}
答案 0 :(得分:1)
我可以确认这是一个错误。
我提交了一个问题https://jira.springsource.org/browse/DATAMONGO-788并在github上添加了一个带有修复程序的pull请求。