Проекции на вложенные документы с Spring MongoTemplate

Я хотел бы выполнить проекцию документа MongoDB, который имеет вложенный документ. Например, скажем, у меня есть следующий документ:

Foo : {
      fooField1 : 1,
      fooField : 2,
      Bar : {
            barField : 1,
            barField : 2
      }
}

Я хотел бы получить следующее обратно от моего mongoTemplate.aggregate(..) вызова:

Foo : {
    fooField1 : 1,
    Bar : {
        barField1 : 1
    }
}

Я не могу понять, как это сделать с MongoTemplate. Я пробовал много разных комбинаций, в том числе:

Aggregation.project(Fields.field("fooField1").and("Bar").project(Fields.field("barField1"))

Мне пока не везло. У кого-нибудь есть предложения?


person Mac    schedule 28.10.2013    source источник


Ответы (1)


Обычно вам нужно $unwind вложить данные в структуру агрегации.

После того, как вы размотаете Bar, сопоставьте его с FooField

person Tom Swifty    schedule 28.10.2013
comment
Я бы хотел, чтобы этот ответ был более подробным. - person Madbreaks; 22.03.2018