5.2 Conversão de coordenadas

Na exportação dos dados do WordPress para o MongoDB não foram informados valores para o campo geometry, apenas para o campo coordinates. Desta forma, o campo geometry precisa ser alimentado com dados do campo coordinates de seu próprio documento.

O processo de atribuição do valor do campo geometry de cada documento foi feito em duas etapas. Primeiro, para todos os documentos onde o campo coordinates possui valor, foi atribuído um objeto GeoJSON com o tipo MultiPoint e as coordenadas do campo coordinates, usando o seguinte comando:

db.pages.find({
      "coordinates": {
          "$gt": []
      }
}).forEach(function(data) {
  var geometria = {
      type: "MultiPoint",
      coordinates: data.coordinates
  };
  data.geometry = geometria;
  db.pages.save(data);
});

Em seguida, para os ducumentos onde coordinates possui apenas um par de coordenadas, foi atribuído um objeto GeoJSON com o tipo Point e as coordenadas do campo coordinates, usando o seguinte comando:

db.pages.find({
      "coordinates": {
          "$size": 1
      }
}).forEach(function(data) {
  var geometria = {
      type: "Point",
      coordinates: data.coordinates[0]
  };
  data.geometry = geometria;
  db.pages.save(data);
});

5. Consultas geoespaciais