java - 项目作为 spring mongo 中的嵌套文档

标签 java mongodb aggregation-framework spring-data-mongodb

我正在寻找翻译来改变这一点:

getCollection('migrate').aggregate([  
{ "$project": {  
"Contrat": {"Field1":"$Field1", "Field2":"$Field2"},
"Formule": {"Field3":"$Field3", "Field4":"$Field4"}  
    }},  
    { "$project": {  
      "Contrats": {"Contrat":"$Contrat", "Formule":"$Formule"}  
    }}  
])  

到 MongoJava 聚合框架。类似于:

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);

我在文档中找不到我的答案,我认为文档太差了,或者我可能太迷失在其中了(|愚蠢)。

我先谢谢你了。

最佳答案

您可以使用以下聚合。

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);

关于java - 项目作为 spring mongo 中的嵌套文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53213134/

相关文章:

java - ResponseBuilder toString() 返回字符串中的对象类,而不仅仅是原始响应字符串

java - Spring bean线程安全

java - MongoDB 3.2 Java 驱动程序 : How To Use AggregateOperation

sql - 本地主机窗口中的 Mongodb 错误

MongoDB 聚合使用 $match 和 $expr 以及数组

go - 带有 $lookup 查询的 MGO 管道不会附加来自 "joined"集合的匹配文档

java - Bitmap.createBitmap(int, int, Bitmap.Config) 在类膨胀期间抛出运行时异常

java - 要求 'java' 在 irb 中失败

javascript - Mongoose.connection ('once' ) 是什么意思

node.js - 使用聚合查询获取具有总交易计数和交易明细的用户列表作为嵌入式文档