У меня есть документ mongodb, например
{
"_id" : ObjectId("54e66b2da7b5f3a92e09dc6c"),
"SomeMetric" : [
{
//some object
}
{
//some object
}
],
"FilterMetric" : [
{
"min" : "0.00",
"max" : "16.83",
"avg" : "0.00",
"class" : "s1"
},
{
"min" : "0.00",
"max" : "16.83",
"avg" : "0.00",
"class" : "s2"
},
{
"min" : "0.00",
"max" : "16.83",
"avg" : "0.00",
"class" : "s1"
},
{
"min" : "0.00",
"max" : "16.83",
"avg" : "0.00",
"class" : "s2"
}
]
}
Обычно он содержит много вложенных массивов, подобных этому. Я хочу проецировать только одну метрику, только с массивами, которые имеют мои критерии поиска. У меня есть запрос
db.sample.find(
{"filtermetric.class" : "s2"},{"filtermetric" : { $elemMatch : {class: "s2"}}}
)
Это дает мне только первый объект в массиве. Второй объект с классом: s2 не возвращается.
Если я попробую
db.sample.find(
{"filtermetric" : { $elemMatch : {class: "s2"}}}
)
Он дает мне все 4 объекта в массиве.
Как мне получить все объекты, соответствующие критериям в таком случае?