MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Schema semplice di Meteor per i dati di geolocalizzazione mongo

Hmm non conosco esattamente la soluzione al tuo processo di salvataggio delle geocoords. Ma se vuoi salvare lng e lat devi passare un prefisso. Come mai? Bene, le geocoordinate hanno intervalli di convalida diversi. La latitudine è disponibile solo da -90 a 90 e la longitudine da -180 a 180. Se non salvi un prefisso, come vuoi assicurarti quale è quale coordinata? Un altro suggerimento che ho fatto un giorno falso è quello di memorizzare le coordinate in longitudine, ordine di latitudine.

Lo schema che sto usando è simile a questo:

GeocoordsSchema = new SimpleSchema({
  lng: {
    type : Number,
    decimal: true,
    min: -180,
    max: 180
  }, 
  lat: {
    type : Number,
    decimal: true,
    min: -90,
    max: 90
  }
});

Ora crei schemi nidificati. Basta estendere GeocoordsSchema con LocationSchema e aggiungere un attributo.

LocationSchema = new SimpleSchema({
  type : {
    type : String,
    autoValue: function() {
      return "Point";
    }
  },
  coordinate: {
    type: GeocoordsSchema 
  }
});

Se vuoi avere una matrice di LocationSchema, puoi racchiudere lo schema tra [] parentesi.

BeachesSchema = new SimpleSchema({
  loc: {
    type: [LocationSchema]
  }
});

Non ho provato, ma è così che creo e annido schemi diversi. Bene, questa soluzione richiede un identificatore di lat e lng. Perché non vuoi anteporre i tuoi dati?