группа мангуста по географическому местоположению

#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. добавлено количество при группировании, проверьте игровую площадку