#mongodb
#mongodb
Вопрос:
Поэтому мне интересно, возможно ли сгруппировать, если длина и широта географического местоположения уже записаны.
По сути, я пытаюсь создать тепловую карту (и я не могу решить это в reactjs). Итак, следующий вариант — сгруппировать long и lat, если они совпадают, и присвоить каждому значение (0-10), чем больше число, тем больше размер div.
Но теперь мне нужно решить, как это сгруппировать.
location.aggregate([
{
$addFields: {
location: {
coordinates: {
$map: {
input: "$location.coordinates",
in: { $toString: "$$this" }
}
}
}
}
},
{
$group: {"$location.coordinates"}
},
{
$unset:["traits","UUID","createdAt","updatedAt"]
},
{$skip:0},
{ $limit: 600 }
])
НЕОБРАБОТАННЫЙ JSON
{"_id":"5ef6f03e5b43e19dabf7c705","__v":0,"location":{"coordinates":["115.862","-31.9674"]}},{"_id":"5ef6f0d55b43e19dabf7d8a1","__v":0,"location":{"coordinates":["115.862","-31.9674"]}},{"_id":"5ef6f1355b43e19dabf7e32d","__v":0,"location":{"coordinates":["115.862","-31.9674"]}},{"_id":"5ef6f2915b43e19dabf80a39","__v":0,"location":{"coordinates":["115.862","-31.9674"]}},{"_id":"5ef6f4055b43e19dabf83819","__v":0,"location":{"coordinates":["115.862","-31.9674"]}},{"_id":"5ef6f5d95b43e19dabf86d13","__v":0,"location":{"coordinates":["115.862","-31.9674"]}},
Ответ №1:
Вы можете попробовать,
$group
Автор:location.coordinates
$project
для преобразования десятичных координат в строку вlocation.coordinates
поле
location.aggregate([
{ $group: { _id: "$location.coordinates" } },
{
$project: {
_id: 0,
"location.coordinates": {
$map: {
input: "$_id",
in: { $toString: "$$this" }
}
}
}
},
{ $skip: 0 },
{ $limit: 600 }
])
Комментарии:
1. Это сработало — в любом случае, чтобы добавить его в addField о том, сколько было сгруппировано? — и большое вам спасибо
2. добавлено количество при группировании, проверьте игровую площадку