Details
-
Question
-
Resolution: Done
-
Major - P3
-
None
-
None
-
None
Description
Is it possible to limit the results of group function? I have a huge dataset and I want to group the results by an id and for each id to create an array with coordinates.
The output result is:
{u'_id': u'229136000', u'COORDINATES': [[160.6752, -27.80978]]} \{u'_id': u'567014500', u'COORDINATES': [[128.1873, -3.672835], [128.1876, -3.673245]]}
|
...
|
As I see the code groups all the id's in dataset and the performance is very bad.
Code:
getPositionsOfshipsgrouped = db.collection.aggregate([ { "$group" :
|
{"_id" :
|
"$properties.MMSI",
|
"total": {"$sum": 1},
|
"COORDINATES": { "$push": "$geometry.coordinates"} }},
|
{"$match": {"total":{"$gte": 0}}} ])
|
If I add $limit in the end of this query, the group function executed and then the limit so there is no change in performance.
Is it possible to limit the results of a group function?