Ich habe ein Dokument wie mongodbMongoDB elemmatch mehrere Elemente in dem Array
{
"_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"
}
]
}
typischerweise viele verschachtelten Arrays wie folgt es enthält. Ich möchte nur eine Metrik mit nur den Arrays projizieren, die meine Suchkriterien haben. Ich habe die Abfrage
db.sample.find(
{"filtermetric.class" : "s2"},{"filtermetric" : { $elemMatch : {class: "s2"}}}
)
Das ist mir in dem Array nur das erste Objekt gibt. Das zweite Objekt mit der Klasse: s2 wird nicht zurückgegeben.
Wenn ich versuche,
db.sample.find(
{"filtermetric" : { $elemMatch : {class: "s2"}}}
)
Es gib mir alle 4 Objekte in der Anordnung.
Wie bekomme ich in einem solchen Fall alle Objekte, die einem Kriterium entsprechen?
Thx viel. Das war detailliert und erklärend. – Manoj
'filtermetric' sollte in diesen Antworten' FilterMetric' sein, damit es mit der Umrandung dieses Felds im Beispieldokument übereinstimmt. – JohnnyHK