查询mongodb以搜索集合中lats和lngs的计数出现次数
我有以下详细资料的文件查询mongodb以搜索集合中lats和lngs的计数出现次数,mongodb,Mongodb,我有以下详细资料的文件 { "_id" : ObjectId("58fa2847a105621bf28c7436"), "srcLoc" : [ 29.03596937656403, 41.08048413380768 ], "destLoc" : [ 29.3168603, 40.905371 ], "wayPoints" : [ { "_id" : ObjectId("58fa2961de501
{
"_id" : ObjectId("58fa2847a105621bf28c7436"),
"srcLoc" : [ 29.03596937656403, 41.08048413380768 ],
"destLoc" : [ 29.3168603, 40.905371 ],
"wayPoints" : [
{ "_id" : ObjectId("58fa2961de50171c2e89e4e2"),
"lng" : 29.035865853970662,
"lat" : 41.08010057266194
},
{ "_id" : ObjectId("58fa2961de50171c2e89e4e1"),
"lng" : 29.053879848358697,
"lat" : 41.082083123947546
},
{ "_id" : ObjectId("58fa2961de50171c2e89e4e0"),
"lng" : 29.0638848389565,
"lat" : 41.0857235683904
},
{ "_id" : ObjectId("58fa2961de50171c2e89e4df"),
"lng" : 29.03194416492813,
"lat" : 41.0566495985393
}
],
"totalDistance" : 0.004627394567308733,
"driverId" : ObjectId("58ecd6a563b5128b2b5e298b"),
"riderId" : ObjectId("58ececcbb5e88b94e59e0cd1"),
"__v" : 0
}
此处字段“航路点”具有lats lngs对的中间点。我必须找出哪对lat lng对在整个收集过程中在航路点字段中出现的次数最多。。。例如,我假设航点场有一对lat lng
[“液化天然气”:29.035865853970662,
“lat”:41.08010057266194]
我需要计算属于集合的所有航路点字段中该lat lng对的出现次数 尝试此聚合框架查询:
db.stackoverflow.aggregate(
[
{$unwind: "$wayPoints"},
{$group:
{
_id: {lng:"$wayPoints.lng", lat:"$wayPoints.lat"},
count: {$sum:1}
}
},
{$sort: {count:-1}}
]
)
我创建了一些文档,如您提供的文档,然后对集合运行了此查询,结果如下。您可以看到,对于每个lat lng对,都有一个其出现次数的计数器,它们从最常用的对(3次出现)开始排序
尝试此聚合框架查询:
db.stackoverflow.aggregate(
[
{$unwind: "$wayPoints"},
{$group:
{
_id: {lng:"$wayPoints.lng", lat:"$wayPoints.lat"},
count: {$sum:1}
}
},
{$sort: {count:-1}}
]
)
我创建了一些文档,如您提供的文档,然后对集合运行了此查询,结果如下。您可以看到,对于每个lat lng对,都有一个其出现次数的计数器,它们从最常用的对(3次出现)开始排序
请举例说明你收集的文件是什么样的,以及你的输入数据和预期结果是什么?我有以下详细的文件。请举例说明你收集的文件是什么样的,以及你的输入是什么样的数据和预期结果是?我有以下详细信息的文件。。