3

I need to print the MongoDB aggregation query used in Java code (for debugging an empty response). I don't see a way to print the GroupOperation object, org.springframework.data.mongodb.core.aggregation.GroupOperation

I see this method: public Document toDocument(AggregationOperationContext context), but I don't understand how to pass a value for context.

I need a way to print this object.

Here are my code snippets:

Query in Java code:

GroupOperation groupOperation = new GroupOperation(
                Fields.fields("dbHost"))
                .first("dbUser").as("dbUser")
                .first("dbPassword").as("dbPassword");

System.out.println("groupOperation = " + groupOperation);

List<AggregationOperation> aggregationOperations = Lists.newArrayList(groupOperation);
Aggregation agg = Aggregation.newAggregation(aggregationOperations)
             .withOptions(Aggregation.newAggregationOptions().allowDiskUse(true).build());
AggregationResults<Document> aggInfo = mongoTemplate.aggregate(agg, "schedulerInfo", Document.class);
List<Document> docs = aggInfo.getMappedResults();

System.out.println("docs = " + docs);

Output:

groupOperation = org.springframework.data.mongodb.core.aggregation.GroupOperation@1188e820
docs = []

Corresponding query in Mongo shell:

db.schedulerInfo.aggregate([{"$group": {"_id": "$dbHost", "dbUser": { "$first": "$dbUser" },"dbPassword": { "$first": "$dbPassword" }}}])
1

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.