Ich bin auf der Suche nach der MongoDB Leistung zu optimieren, indem Sie die Anzahl der Datensätze zu minimieren.Mongodb Abwickeln und Match VS Match und Unwind
Ich mag:
unwind(injectionRecords),
match("machineID" : "machine1"),
count(counter)
Aber wegen der großen Daten entspannen Betrieb viel Zeit in Anspruch nimmt und dann passt es aus Abwickler. Es wickelt alle 4 Datensätze ab, stimmt dann mit machineID überein und gibt mir die Anzahl davon.
Stattdessen würde Ich mag, wie etwas zu tun ist:
match("machineID": "machine1"),
unwind(injectionRecords)
count(counter)
So wäre es entsprechende Datensätze gefunden MachineID mit und Entspannen nur 2 statt 4 und gib mir die Zählung davon.
Ist das möglich? Wie kann ich das machen?
Hier sind Beispiel docs,
{
"_id" : ObjectId("5981c24b90a7c215e4f166dd"),
"machineID" : "machine1",
"injectionRecords" : [
{
"startTime" : ISODate("2017-08-02T17:45:04.779+05:30"),
"endTime" : ISODate("2017-08-02T17:45:07.763+05:30"),
"counter" : 1
},
{
"startTime" : ISODate("2017-08-02T17:45:24.417+05:30"),
"endTime" : ISODate("2017-08-02T17:45:27.402+05:30"),
"counter" : 2
}
]
},
{
"_id" : ObjectId("5981c24b90a7c215e4f166de"),
"machineID" : "machine2",
"injectionRecords" : [
{
"startTime" : ISODate("2017-08-02T17:46:04.779+05:30"),
"endTime" : ISODate("2017-08-02T17:46:07.763+05:30"),
"counter" : 1
},
{
"startTime" : ISODate("2017-08-02T17:46:24.417+05:30"),
"endTime" : ISODate("2017-08-02T17:46:27.402+05:30"),
"counter" : 2
}
]
}
Es ist sicherlich möglich, eine Aggregationspipeline mit (1) match (2) abzuwickeln, sodass die Antwort auf Ihre Frage davon abhängen kann, ob ** Ihre spezifische Übereinstimmung ** tatsächlich auf die Daten angewendet werden kann, bevor sie abgewickelt wird. Können Sie Ihre Frage aktualisieren, um ein Beispieldokument und Ihre aktuellen Abwicklungs- und Spielphasen hinzuzufügen? – glytching
@glitch kann eine optimierte Abfrage für meine Frage posten? – Pratikmr97
@RicardoRocha Bitte verwende keine Codeformatierung für Wörter wie 'mongodb'. [Für weitere Informationen sieh dir das an] (https://meta.stackoverflow.com/a/254995/4244993) – jmattheis