Angenommen, es ist ein Dokument wie:foreach Element in einem Array findet größte Platten mongodbcsharp Treiber
{
"_id": "1cf2080c-ce9a-367b-93ba-dbf7b2bf8a2c",
"template_id" : "1cf2080c-ce9a-367b-93ba-dbf7b2bf8a2c",
"some_value" : 12
}
Zuordnung zu einer Klasse als Template
und einem TemplateID Array gegeben array_id = ["aa", "bb", "cc"]
Frage: wie kann ich eine Template
Liste mit mongodb C# driver2.1 up, die jedes Element in der Liste haben größten some_value
?
zum Beispiel gibt es eine Sammlung:
{"_id": "1", "template_id": "aa", "some_value":1}
{"_id": "2", "template_id": "aa", "some_value":2}
{"_id": "3", "template_id": "aa", "some_value":3}
{"_id": "4", "template_id": "bb", "some_value":4}
{"_id": "5", "template_id": "bb", "some_value":5}
und ein template_id_array = ["aa", "bb"]
Ergebnis erwarten ist:
{"_id": "3", "template_id": "aa", "some_value":3}
{"_id": "5", "template_id": "bb", "some_value":5}
ich denke, es einige "Aggregat" oder „Karte-reduzieren wäre "Wie bei der Prozedur, zuerst das Ergebnis abgleichen und dann nach der Template-ID gruppieren und dann den maximalen Wert für jede Gruppe finden.
sorry für nicht meinen Punkt klar zu machen, würde ich tatsächlich mag eine mongodb "sql like" Abfrage in nur einer Zeile verwenden, nicht linq –