2016-12-12 5 views
1

Ich bin neu in MongoDB und versuche, eine Aggregationsoperation für das Ergebnis durchzuführen, das ich nach dem Ausführen der Suchoperation erhalte.MongoDB-Aggregation nach dem Suchen?

Ich bin der FIND-Operation ausgeführt wird, die Staaten zu bekommen, Stadt & Bevölkerung Ergebnis im Abstand 5 Meilen wie folgt:

db.zipcodes.find({loc : { $near : [-86, 54], $maxDistance: 5*(1/69) }}) 

Nun, ich möchte eine Aggregation dh Gruppe die Ergebnisse von den Staaten durchzuführen und die Gesamtbevölkerung der Gruppenstaaten in sortierter Weise zurückgeben. Ich habe so etwas versucht:

db.zipcodes.aggregate({ $group : { ... }, { db.zipcodes.find(...) }}, {$sort : {_population : 1}}) 

Aber leider funktioniert es nicht.

Jede Hilfe wäre willkommen.

+1

versuchen, den $ Match-Operator, um die db.zipcodes zu ersetzen. finden() – felix

Antwort

3

Suche Abfrageergebnisse können nicht aggregieren weitergegeben werden, statt finden Sie $match verwenden können, und dann werden die Gruppenoperationen

Beispielabfrage

db.zipcodes.aggregate([{$match:{loc : { $near : [-86, 54], $maxDistance: 5*(1/69) }}},{$group : { ... }}, {$sort : {_population : 1}}])