This is my collection structure.
{
 "_id" : ObjectId("5685ea32ba5298688d27cceb"),
 "name" : "t1",
 "array" : [ 
     {
         "name" : "n1",
         "innerArray1" : [ 
             {
                 "id" : 1,
                 "name" : "aaa"
             }, 
             {
                 "id" : 2,
                 "name" : "bbb"
             }
         ],
         "innerArray2" : [ 
             {
                 "id" : 1,
                 "name" : "cccc",
                 "active" : true
             }, 
             {
                 "id" : 2,
                 "name" : "dddd",
                 "active" : false
             }
         ]
     }
 ]}
after find().i want to get only innerArray2. I tried like this
db.getCollection('Test').find({"name":"t1","array.name":"n1"},{"array.$":1})
{
"_id" : ObjectId("5685ea32ba5298688d27cceb"),
"array" : [ 
    {
        "name" : "n1",
        "innerArray1" : [ 
            {
                "id" : 1,
                "name" : "aaa"
            }, 
            {
                "id" : 2,
                "name" : "bbb"
            }
        ],
        "innerArray2" : [ 
            {
                "id" : 1,
                "name" : "cccc",
                "active" : true
            }, 
            {
                "id" : 2,
                "name" : "dddd",
                "active" : false
            }
        ]
    }
]
}
but actually i want to remove innerArray1 element from the result.this is my expectation.
{
"_id" : ObjectId("5685ea32ba5298688d27cceb"),
"array" : [ 
    {
        "name" : "n1",
        "innerArray2" : [ 
            {
                "id" : 1,
                "name" : "cccc",
                "active" : true
            }, 
            {
                "id" : 2,
                "name" : "dddd",
                "active" : false
            }
        ]
    }
]}
how can I do this ?
 
     
    