если массив не должен быть корневым элементом ответа, вы можете использовать следующий запрос для возврата массива pinnedKpi.Ver01 с критериями электронной почты и присутствием элемента Ver01 в массиве pinnedKpi:
db.test1.find(
{"email" : "john@doe.ca", "pinnedKpi.Ver01" : {"$exists" : true}},
{"pinnedKpi.Ver01" : 1}
);
Какой выход:
{
"_id" : ObjectId("5b155aa3e7179a6034c6dd5b"),
"pinnedKpi" : {
"Ver01" : [
"130",
"138",
"122",
"134"
]
}
}
Если результатом массива должен быть корневой элемент, вы можете использовать структуру агрегации для достижения этого:
db.test1.aggregate(
[
{
$match: {email:"john@doe.ca","pinnedKpi.Ver01":{$exists:true}}
},
{
$replaceRoot: {
newRoot: "$pinnedKpi"
}
},
{
$project: {
Ver01:1
}
},
]
);
Выход:
{
"Ver01" : [
"130",
"138",
"122",
"134"
]
}