Unë kam një koleksion me dokumente të ngjashme me formatin e mëposhtëm:
{
departure:{name: "abe"},
arrival:{name: "tom"}
},
{
departure:{name: "bob"},
arrival:{name: "abe"}
}
Dhe për të marrë rezultate si kjo:
{
name: "abe",
departureCount: 1,
arrivalCount: 1
},
{
name: "bob",
departureCount: 1,
arrivalCount: 0
},
{
name: "tom",
departureCount: 0,
arrivalCount: 1
}
Unë jam në gjendje të marr numërimet individualisht duke bërë një pyetje për të dhënat specifike si kjo:
db.sched.aggregate([
{
"$group":{
_id: "$departure.name",
departureCount: {$sum: 1}
}
}
])
Por nuk e kam kuptuar se si t'i bashkoj emrat arrival
dhe departure
në një dokument së bashku me numërimet për të dy. Ndonjë sugjerim se si ta realizoni këtë?
$project
(gjë e keqe pasi secila është një kalim fizik përmes të dhënave) dhe nuk duhet të jetë e vështirë të përpunosh që dy fazat e para mund të jenë një. Një tjetër optimizim MongoDB 3.2 është"f": [{ "type": "dep", "name": "$departure.name" },{ "type": "arr", "name": "$arrival.name" }]]
02.04.2016