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 ?