sql >> Databasteknik >  >> NoSQL >> MongoDB

Meteor enkelt schema för mongo geo platsdata

Hmm jag vet inte exakt lösningen på din process för att spara geokoordinater. Men om du vill spara lng och lat måste du skicka ett prefix. Varför? Geokoordinater har olika valideringsintervall. Latitud är endast tillgänglig från -90 till 90 och Longitud från -180 till 180. Om du inte sparar ett prefix, hur vill du då säkerställa vilken som är vilken koordinat? Ett annat tips som jag har gjort falskt någon gång är att lagra koordinationerna i longitud, latitudordning.

Schemat jag använder ser ut så här:

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

Nu skapar du kapslade scheman. Förläng bara GeocoordsSchema med LocationSchema och lägg till ett attribut.

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

Om du vill ha en array av LocationSchema än kan du slå in schemat inom [] parentes.

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

Jag har inte testat men det är så jag skapar och kapar olika scheman. Den här lösningen behöver en identifierare av lat och lng. Varför vill du inte prefixa dina data?



  1. Skäl för och emot att flytta från SQL-server till MongoDB

  2. Steg för att ansluta MongoDB och Solr med DataImportHandler

  3. Hur serialiserar jag chrono::DateTime-fält som ISODate när jag använder Rust Mongo-drivrutinsprototypen?

  4. Stor fördröjning när du använder Selleri + Redis