ho un documento mongodb comeMongoDB elemmatch più elementi a matrice
{
"_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"
}
]
}
Tipicamente contiene molti array nidificati come questo. Voglio proiettare una metrica da sola, con solo gli array che hanno i miei criteri di ricerca. Ho la query
db.sample.find(
{"filtermetric.class" : "s2"},{"filtermetric" : { $elemMatch : {class: "s2"}}}
)
Questo mi dà solo il primo oggetto nella matrice. Il secondo oggetto con classe: s2 non viene restituito.
Se provo
db.sample.find(
{"filtermetric" : { $elemMatch : {class: "s2"}}}
)
Mi ci danno tutti i 4 oggetti nella matrice.
Come ottengo tutti gli oggetti che corrispondono a un criterio in questo caso?
Thx molto. Quello era dettagliato e esplicativo. – Manoj
'filtermetric' dovrebbe essere' FilterMetric' in queste risposte per abbinare l'involucro di quel campo nel documento di esempio. – JohnnyHK