问题描述
我正在寻找翻译来改变这个:
I'm looking for a translator to change this :
getCollection('migrate').aggregate([ { "$project": { "Contrat": {"Field1":"$Field1", "Field2":"$Field2"}, "Formule": {"Field3":"$Field3", "Field4":"$Field4"} }}, { "$project": { "Contrats": {"Contrat":"$Contrat", "Formule":"$Formule"} }} ])
到 MongoJava 聚合框架.类似的东西:
to MongoJava aggregation framework. Something like :
AggregationOperation project = Aggregation.project("Field1,Field2"); // while naming it "Contrat" AggregationOperation project2 = Aggregation.project("Field3,Fiel4"); // while naming it Formule AggregationOperation project3 = Aggregation.project("Contrat,Formule"); // while naming it " Contrats" AggregationOperation out = Aggregation.out("test"); Aggregation aggregation = Aggregation.newAggregation(project, project2, project3, out); mongoTemplate.aggregate(aggregation, "<nameOfInitialCollection>", Class.class);
我在文档中找不到我的答案,我认为这太差了,或者我可能太迷失了(|哑).
I can't find my answers in the documentation, which I think is too poor, or I may be too lost in it ( | dumb).
我会提前谢谢你.
推荐答案
你可以使用下面的聚合.
You can use below aggregation.
AggregationOperation project = Aggregation.project(). and("Contrat").nested(Fields.fields("Field1","Field2")). and("Formule").nested(Fields.fields("Field3","Field4")); AggregationOperation project2 = Aggregation.project(). and("Contrats").nested(Fields.fields("Contrat","Formule")). AggregationOperation out = Aggregation.out("test"); Aggregation aggregation = Aggregation.newAggregation(project, project2, out); mongoTemplate.aggregate(aggregation, "<nameOfInitialCollection>", Class.class);