2016-04-10 9 views
0

Ben mongodb için yeni ve isteğimi yapmak için en iyi yolu gerçekten bilmiyorum.Farklı bir istek ve etkinlik başına sonuç sayısı

Basit bir örneği ele alalım.

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

Benim sonuç olacağını borç ve her

için borç sayısını içeren bir dizi olmalıdır [{borcu: "A", nbrofresult: 3} Benim db bu seti var {borcu: "B" nbrofresult: 1}]

Yani ayrı talep i

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 ? }) 
    }) 
}) 

bu isteği yapmak için uygun bir yolu var mı

yapmak gerçekten bir sorun değildir? okuduğunuz için teşekkürler !

cevap

1

Sezginiz doğru, bu işlevde daha kolay ve daha hızlı bir yöntem var. Esasen sen MongoDB docs

Onların docs açıklandığı gibi bir harita ile bir toplama işlevini azaltmak yapmaya çalışıyoruz bunu başarmak için nasıl bu şekilde daha iyi ve ayrıntılı açıklar.

+0

Cevabınız için teşekkür ederim Bunu okuyacağım. – hadesMM