Поддокумент фильтра в MongoDB

Мы новичок в Mongodb, в рамках нашего POC мы загрузили кучу документов в Mongo и протестировали различные варианты запросов и проекций для извлечения данных. Один из вариантов использования, мы пытаемся отфильтровать приведенный ниже образец документа в Mongo и получить только вложенный документ. Точно так же, как мы получаем данные в реляционной базе данных.

Пример ввода.

{ 
   "_id": "59036b0fa036cc28c8e07db6",
   "sections": [{
    "srcName": "test1",
    "CompanyName": "ABC",
    "sectorCode": "P",
    "raw": false,
    "data": [{
            "srcKey": "",
            "rowIdx": 0
    },
        {
            "srcKey": "01",
            "rowIdx": 1
        }
    ]
  }]
}

**desired output**  
   {
    "_id" : ObjectId("59036b0fa036cc28c8e07db6"),
    "sections" : [ 
    {
        "srcName" : "test1",
        "CompanyName" : "ABC",
        "sectorCode" : "P",
        "raw" : false,
        "data" : [ 
            {
                "srcKey" : "01",
                "rowIdx" : 1
            }
        ]
    }
            ]
}                

Команда оболочки, которую я использовал в RoboMongo, такова:

1/db.getCollection('InsStatData').aggregate([
                        {"$project": {
                            "sections": { 
                                "$filter": {
                                    "input": "$sections", "as": "data", "cond": { "setIsSubset": [["$$data.rowIdx"], [1]] }}}}}])

2/ db.getCollection('InsStatData').aggregate({$match: {"sections.data.rowIdx": 1} })

Подскажите, пожалуйста, как добиться желаемого результата.


person athenatechie    schedule 02.05.2017    source источник