2016-08-09 4 views
0

Zunächst bin ich immer noch ziemlich grün über die MongoDB. Ich habe eine Frage darüber, wie ich die Daten in meiner Datenbank sortieren kann. DB enthält Locations-Sammlung, in der ich einige Einträge habe. Jeder Eintrag hat Städte und einige von ihnen haben Überprüfungs-IDs in Arrays. Also möchte ich es so arrangieren, dass ich Städte und eine Anzahl von Bewertungen habe, die in jedem gemacht werden.Sortierung der Daten in einer Mongodb-Datenbank durch wiederholte Felder

ich nur in der Lage gewesen, alle Veranstaltungsorte zu nehmen, die hat noch keine Bewertungen unter Verwendung:

db.venues.find(
{reviewdata: {$ne:[]}}, 
{city:1,reviewdata:1,_id:0} 
) 

Ich bin ziemlich fest stecken, denn wenn ich die zusätzlichen Daten und Gruppe durch Städte aggregieren will und Sortieren nach Anzahl der Bewertungen Ich kann es nicht tun. Gibt es eine Möglichkeit zu kombinieren .find() und .aggregate() Funktionen?

Antwort

0

Sie können dies .aggregate() mit tun und $match:

Filtern die Dokumente nur die Dokumente zu übergeben, die die angegebene Bedingung entsprechen (n) in der nächsten Pipeline-Stufe.

db.venues.aggregate([ 
    {$match: 
    { reviewdata: { $ne:[] } }, 
    { city:1, reviewdata:1, _id:0 } 
    }, 
    { $group: { 
    _id: "$city", // Or however you'd group it. Would need document input/output example 
    count: { $sum: 1 } // You can also add accumulator expressions, like this 
    } 
]) 
Verwandte Themen