MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Esquema simples de meteoro para dados de localização geográfica do mongo


Hmm eu não sei exatamente a solução para o seu processo de salvar geocoords. Mas se você quiser salvar lng e lat você tem que passar um prefixo. Por quê? Os geocoords de poços têm diferentes intervalos de validação. Latitude só está disponível de -90 a 90 e Longitude de -180 a 180. Se você não salvar um prefixo, como você quer garantir qual é qual coordenada? Outra dica que fiz falso algum dia é armazenar as coordenadas em longitude, latitude.

O esquema que estou usando é assim:
GeocoordsSchema = new SimpleSchema({
  lng: {
    type : Number,
    decimal: true,
    min: -180,
    max: 180
  }, 
  lat: {
    type : Number,
    decimal: true,
    min: -90,
    max: 90
  }
});

Agora você cria esquemas aninhados. Basta estender GeocoordsSchema com LocationSchema e adicionar um atributo.
LocationSchema = new SimpleSchema({
  type : {
    type : String,
    autoValue: function() {
      return "Point";
    }
  },
  coordinate: {
    type: GeocoordsSchema 
  }
});

Se você deseja ter uma matriz de LocationSchema, pode envolver o esquema entre colchetes [].
BeachesSchema = new SimpleSchema({
  loc: {
    type: [LocationSchema]
  }
});

Eu não testei, mas é assim que eu crio e aninho esquemas diferentes. Bem, esta solução precisa de um identificador de lat e lng. Por que você não deseja prefixar seus dados?