Closed
Description
db.rep_report_param_label.aggregate([{
"$match": {}
}, {
"$group": {
"_id": {
"_id:null": "$_id:null",
"label_name": "$label_name"
}
}
}, {
"$project": {
"label_name": "$_id.label_name",
"_id": 0
}
}, {
"$sort": {
"serial_number": - 1,
"label_name": - 1
}
}, {
"$skip": 290
}, {
"$limit": 10
}])
this is ok in mongodb.
but i use in spring data mongodb v3.0.0 like this,
GroupOperation groupOperation = Aggregation.group("_id:null", "label_name");
aggregationOperations.add(groupOperation);
countAggregationOperations.add(groupOperation);
ProjectionOperation projectionOperation = Aggregation.project("label_name").andExclude("_id");
aggregationOperations.add(projectionOperation);
countAggregationOperations.add(projectionOperation);
Sort sort = Sort.by(Sort.Direction.DESC, "serial_number");
SortOperation sortOperation = new SortOperation(sort).and(Sort.Direction.DESC, "label_name");
aggregationOperations.add(sortOperation);
it was wrong
java.lang.IllegalArgumentException: Invalid reference 'serial_number'!
at org.springframework.data.mongodb.core.aggregation.ExposedFieldsAggregationOperationContext.getReference(ExposedFieldsAggregationOperationContext.java:114) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.ExposedFieldsAggregationOperationContext.getReference(ExposedFieldsAggregationOperationContext.java:86) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.InheritingExposedFieldsAggregationOperationContext.resolveExposedField(InheritingExposedFieldsAggregationOperationContext.java:62) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.ExposedFieldsAggregationOperationContext.getReference(ExposedFieldsAggregationOperationContext.java:109) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.ExposedFieldsAggregationOperationContext.getReference(ExposedFieldsAggregationOperationContext.java:86) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.SortOperation.toDocument(SortOperation.java:73) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.AggregationOperation.toPipelineStages(AggregationOperation.java:55) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.AggregationOperationRenderer.toDocument(AggregationOperationRenderer.java:56) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.aggregation.Aggregation.toPipeline(Aggregation.java:721) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.AggregationUtil.createPipeline(AggregationUtil.java:95) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.MongoTemplate.doAggregate(MongoTemplate.java:2118) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.MongoTemplate.aggregate(MongoTemplate.java:2093) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at org.springframework.data.mongodb.core.MongoTemplate.aggregate(MongoTemplate.java:1992) ~[spring-data-mongodb-3.0.0.RELEASE.jar:3.0.0.RELEASE]
at