Как преобразовать команду Mongo cli в команду spring-data-mongo для объединения mongo с помощью MongoTemplate

#spring-boot #mongodb-query #spring-data-mongodb #mongo-shell #mongotemplate

#spring-boot #mongodb-query #spring-data-mongodb #mongo-shell #mongotemplate

Вопрос:

Я хочу написать следующий запрос, используя шаблон mongo.

 db.collection.aggregate([
  {
    $project: {
      classes: {
        $map: {
          input: "$classes",
          as: "class",
          in: {
            classId: "$$class.classId",
            students: {
              $filter: {
                input: "$students",
                cond: { $in: ["$$this._id", "$$class.studentIds"] }
              }
            }
          }
        }
      }
    }
  }
])

  

Я много пробовал, но это не работает.

 TypedAggregation<OrderDocument> aggregate = newAggregation(StudentDocument.class, 
                    match(Criteria.where("_id").is(id)),                    
                    project("classes")
                        .and(VariableOperators.Map
                                .itemsOf("classes")
                                .as("class")
                                .andApply(doc-> 
                                    new Document()
                                        .append("classId", "$$class.classId")                                       
                                        .append("students", ArrayOperators.Filter
                                                .filter("students")
                                                .as("student")           
 .by(ComparisonOperators.Eq.valueOf("$$student._id").equalToValue("$$class.studentIds"))))));
        
  

Это не дает требуемого ответа, который поступает из команды оболочки mongo.

Комментарии:

1. Вы нашли answear?

2. Нет @big_OS . Пока я не нашел ответа