Spring Data Aggregation принимает только идентификатор по умолчанию во вложенной структуре документа - PullRequest
0 голосов
/ 05 июля 2019

Я использую запрос агрегации, чтобы получить список объектов B из вложенной структуры документа в MongoDB. Запрос отлично работает в оболочке mongo, и возвращается C._id, но когда я делаю то же самое с данными пружины, он возвращает значение по умолчанию A._id. Это структура документа, имеющая коллекцию A, вложенную в массив B и массив Ar соответственно

    {
      _id: 1,
      B : [{
            _id: 1.1,
            C : [{
                  _id: 1.1.10
                  type: "input"
                }]
           }]
     }

Этот запрос возвращает 'C._id: 1.1.10' db.sw_eng.aggregate([{"$unwind":"$B"},{"$unwind":"$B.C"},{"$match":{"B.C.type":"input"}},{$project:{_id:0, Cid:"$B.C._id"}}]);

Но когда я делаю то же самое, используя данные о весне Aggregation getOutputPort = Aggregation.newAggregation( unwind(B), unwind(C), match(...), match(...), match(...), match(...), project(B.C._id) .andExpression("VALUE").as(B.C.value)<br> );

Ожидаемый результат должен быть id:1.1.10, но во всех случаях я получаю id:1

...