protected List<Object> getOperationArguments(AggregationOperationContext context) { List<Object> result = new ArrayList<Object>(values != null ? values.size() : 1); for (Object element : values) { if (element instanceof Field) { result.add(context.getReference((Field) element).toString()); } else if (element instanceof Fields) { for (Field field : (Fields) element) { result.add(context.getReference(field).toString()); } } else if (element instanceof AggregationExpression) { result.add(((AggregationExpression) element).toDbObject(context)); } else { result.add(element); } } return result; }
/* (non-Javadoc) * @see org.springframework.data.mongodb.core.aggregation.AggregationOperation#toDBObject(org.springframework.data.mongodb.core.aggregation.AggregationOperationContext) */ @Override public DBObject toDBObject(AggregationOperationContext context) { DBObject dbObject = new BasicDBObject(); dbObject.put( "groupBy", groupByExpression == null ? context.getReference(groupByField).toString() : groupByExpression.toDbObject(context)); if (!outputs.isEmpty()) { dbObject.put("output", outputs.toDbObject(context)); } return dbObject; }