나는이 쿼리 구축 교리 ODM의 집계 빌더를 사용하려면 : 나는 Studio3T이 실행doctrine 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" },
}
},
]
);
을 다음과 같은 가지고 :
{
"_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)
}
나는 교리 ODM의 집계를 사용하여이 정확한 쿼리를 작성하려면 어떻게을 빌더?
집합 빌더에 대한 광범위한 문서가 있습니다. http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/aggregation-builder.html – malarzm
믿거 나 말거나, 나는 믿습니다. 그 페이지에 여러 번 왔습니다. 이것이 집합 빌더를 사용하여 시작한 방법입니다. 그러나 여러 필드를 합쳐서 합산 한 부분을 어디서 보지 못했습니다. 내가 찾고있는 구체적인 사례는 doctrine odm에 다음과 같이 쓰는 방법입니다. ' "games": {$ sum : { "$ wins", "$ losses", "$ ties"] }},' – markedphp
doctrine odm'sum()'코드를 살펴본 후, doc-block은 다음과 같이 말합니다 : ' 에서 나온 모든 숫자 값의 합계를 계산하여 그룹 내의 각 문서에 적용합니다. 같은 그룹을 키로 공유하는 문서 비 숫자 값을 무시합니다. ' 하지만 그럴 수는 없습니다. 또는 더 많은 경우 집계 작성자를 이해하지 못합니다. – markedphp