Ich möchte diese Abfrage Lehre ODMs Aggregation Builder verwenden zu bauen:Wie summiere ich mehrere Felder in der Lehre Odm?
db.TeamStandings.aggregate(
// Pipeline
[
// Stage 1
{
$match: {
"team.$id": ObjectId("5a1643fdf5d8741a883c2aeb")
}
},
// Stage 2
{
$group: {
"_id": { "team": "team.$id" },
// This is the sum of multiple fields
"games": { $sum: { $sum: ["$wins", "$losses", "$ties"] } },
"wins": { $sum: "$wins" },
"losses": { $sum: "$losses" },
"ties": { $sum: "$ties" },
"homeWins" : { $sum: "$homeRecord.wins" },
"homeLosses" : { $sum: "$homeRecord.losses" },
"homeTies" : { $sum: "$homeRecord.ties" },
"roadWins" : { $sum: "$roadRecord.wins" },
"roadLosses" : { $sum: "$roadRecord.losses" },
"roadTies" : { $sum: "$roadRecord.ties" },
}
},
]
);
ich dies in Studio3T ausgeführt und bekam die folgende:
{
"_id" : {
"team" : "team.$id"
},
"games" : NumberInt(776),
"wins" : NumberInt(377),
"losses" : NumberInt(398),
"ties" : NumberInt(1),
"homeWins" : NumberInt(218),
"homeLosses" : NumberInt(170),
"homeTies" : NumberInt(1),
"roadWins" : NumberInt(159),
"roadLosses" : NumberInt(228),
"roadTies" : NumberInt(0)
}
Wie schreibe ich diese genaue Abfrage Lehre ODMs Aggregation Erbauer?
Es gibt ziemlich umfangreiche Dokumentation über den Aggregation Builder: http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/aggregation-builder.html – malarzm
Ob Sie es glauben oder nicht, ich bin schon oft auf dieser Seite gewesen. So begann ich mit dem Aggregation Builder. Allerdings habe ich nicht gesehen, wo es sich um das Zusammenfassen mehrerer Felder handelt. Der spezielle Fall, den ich suche, ist, wie man dies in der Lehre schreibt odm: '" Spiele ": {$ Summe: {$ Summe: [" $ gewinnt "," $ Verluste "," $ Krawatten "] }}, ' – markedphp
Nach dem Graben durch die Doktrin odm' sum() 'Code, der Doc-Block sagt: ' Berechnet und gibt die Summe aller numerischen Werte, die sich aus einen bestimmten Ausdruck auf jedes Dokument in einer Gruppe anwenden von Dokumenten, die die gleiche Gruppe nach Schlüssel teilen. Ignoriert Nonne-numerische Werte. Aber es scheint es _doesnot_; oder wahrscheinlicher verstehe ich den Aggregation Builder nicht. – markedphp