MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Schéma simple Meteor pour les données de géolocalisation mongo

Hmm, je ne connais pas exactement la solution à votre processus de sauvegarde des géocoords. Mais si vous voulez enregistrer lng et lat, vous devez passer un préfixe. Pourquoi? Eh bien, les géocoords ont différentes plages de validation. La latitude n'est disponible que de -90 à 90 et la longitude de -180 à 180. Si vous n'enregistrez pas de préfixe, comment voulez-vous vous assurer quelle est quelle coordonnée ? Un autre indice que j'ai fait faux un jour est de stocker les coordonnées dans l'ordre de longitude, latitude.

Le schéma que j'utilise ressemble à ceci :

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

Vous créez maintenant des schémas imbriqués. Étendez simplement GeocoordsSchema avec LocationSchema et ajoutez un attribut.

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

Si vous voulez avoir un tableau de LocationSchema, vous pouvez envelopper le schéma entre [] crochets.

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

Je n'ai pas testé mais c'est ainsi que je crée et imbrique différents schémas. Eh bien, cette solution a besoin d'un identifiant de lat et lng. Pourquoi ne voulez-vous pas préfixer vos données ?