2016-04-10 9 views
0

Ich bin neu bei Mongodb und ich weiß nicht wirklich den besten Weg, um meine Anfrage zu tun.eindeutige Anfrage und Anzahl der Vorkommen pro Ergebnis

Betrachten wir ein einfaches Beispiel. Ich habe diesen Satz in meinem db:

{ "_id": 1, "dept": "A"} 
{ "_id": 2, "dept": "B"} 
{ "_id": 3, "dept": "A"} 
{ "_id": 4, "dept": "A"} 

Mein Ergebnis sollte für jeden

ein Array mit der Abteilung und die Anzahl der Abteilung sein, wäre [{dept: "A", nbrofresult: 3} {Abt: "B", nbrofresult: 1}]

So ist die eindeutige Anforderung ist nicht wirklich ein Problem, das ich

tun
find().distinct('dept').exec((err, res) => { 
    var myarray = res // here I got ["A", "B"] 

    // what I was thinking about but looks ugly 
    var finalresult = []; 
    myarray.forEach((elem) => { 
     finalresult.push({ dept: elem, nbrofresult: some other request with count ? }) 
    }) 
}) 

gibt es eine richtige Art und Weise, diesen Antrag zu tun? Danke fürs Lesen!

Antwort

1

Ihre Intuition ist korrekt, es gibt eine einfachere und schnellere Methode für diese Funktionalität. Im Wesentlichen versuchen Sie, eine Aggregation mit einer Map Reduce-Funktion wie in der MongoDB docs

beschrieben zu tun, ihre Dokumente erklärt es viel besser und detailliert, wie dies zu erreichen ist.

+0

Hey danke für deine Antwort Ich werde das lesen. – hadesMM

Verwandte Themen