Hier ist mein db.zählen Dokumente nach bestimmten verschachtelten Feldern Werte mit Aggregation-Framework in MongoDB
{
"_id" : ObjectId("579cab6c6aba30f42a57a979"),
"iecode" : "P1111",
"country" : "India",
"totalTreatmentArms" : 3,
"treatmentArms" : [
{
"mechanismOrPkg" : "Mechanism",
"mechanism" : "mechanism1"
},
{
"mechanismOrPkg" : "Mechanism",
"mechanism" : "mechanism2"
},
{
"mechanismOrPkg" : "Package",
"mechanism" : "mechanism1"
}
]
}
{
"_id" : ObjectId("579cab7a6aba30f42a57a97a"),
"iecode" : "P1111",
"country" : "Canada",
"totalTreatmentArms" : 3,
"treatmentArms" : [
{
"mechanismOrPkg" : "Mechanism",
"mechanism" : "mechanism1"
},
{
"mechanismOrPkg" : "Mechanism",
"mechanism" : "mechanism2"
},
{
"mechanismOrPkg" : "Package",
"mechanism" : ""
}
]
}
{
"_id" : ObjectId("579cabac6aba30f42a57a97b"),
"iecode" : "P2222",
"country" : "India",
"totalTreatmentArms" : 1,
"treatmentArms" : [
{
"mechanismOrPkg" : "Package",
"mechanism" : ""
}
]
}
{
"_id" : ObjectId("579cabe76aba30f42a57a97c"),
"iecode" : "P3333",
"country" : "India",
"totalTreatmentArms" : 2,
"treatmentArms" : [
{
"mechanismOrPkg" : "Mechanism",
"mechanism" : "mechanism1"
},
{
"mechanismOrPkg" : "Package",
"mechanism" : ""
}
]
}
Bitte beachten Sie, dass es zwei Datensätze mit iecode : P1111
und ich möchte nur ein Datensatz auf iecode
so unterscheiden führen (ein) in Betracht gezogen werden.
Jetzt ist meine Anforderung, ich möchte auf Feld mechanismOrPkg
zählen. Wenn es den Wert Package
enthält, werden wir package
um eins erhöhen. Wenn der Wert Mechanism
ist, dann betrachten wir den Wert des Feldes mechanism
, und die Anzahl der respektierten Werte wird berücksichtigt.
So Endergebnis wird so sein
{
"_id" : null,
"totalPackage" : 3,
"totalMechanism1" : 2,
"totalMechanism2" : 1
}
Bitte fragen, ob es verwirrend klingt. Lassen Sie mich wissen, auch wenn diese Art der Aggregation mit Abfrage möglich ist oder ich Server-Filterung durchführen muss?
Danke.
bearbeiten
Mögliche Werte von mechanismOrPkg: Paket oder Mechanism
Mögliche Werte des Mechanismus: mechanism1 oder mechanism2
Sie auch, wenn alle Dokumente 'mechani angeben sollten sm' Wert, wo 'mechanismOrPkg'' Mechanism' ist, kann nur 2 Werte haben ('mechanism1',' mechanism2') wie in Ihrem Beispiel oder die Anzahl der möglichen Mechanismen ist nicht durch Ihre Anwendung eingeschränkt und es könnte 'mechanism3',' mechanism4 sein ', ... so wird das Ergebnisdokument je nach Sammlungsstatus unterschiedlich lang sein. – tarashypka
@tarashypka Danke für's Bemerken. Überprüfen Sie meine Bearbeitung. –