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

Meteor simpelt skema til mongo geo-placeringsdata

Hmm jeg kender ikke præcis løsningen på din proces med at gemme geokoordinater. Men hvis du vil gemme lng og lat, skal du sende et præfiks. Hvorfor? Geokoordinater har forskellige valideringsintervaller. Breddegrad er kun tilgængelig fra -90 til 90 og længdegrad fra -180 til 180. Hvis du ikke gemmer et præfiks, hvordan vil du så sikre dig, hvilken er hvilken koordinat? Et andet tip, jeg har gjort forkert en dag, er at gemme koordinationerne i længdegrad, breddegrad.

Skemaet, jeg bruger, ser sådan ud:

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

Nu opretter du indlejrede skemaer. Du skal blot udvide GeocoordsSchema med LocationSchema og tilføje en attribut.

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

Hvis du vil have et array af LocationSchema end du kan ombryde skemaet i [] parenteser.

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

Jeg har ikke testet, men det er den måde, hvordan jeg opretter og indlejrer forskellige skemaer. Denne løsning har brug for en identifikator af lat og lng. Hvorfor vil du ikke have dine data foran?



  1. Fordele og ulemper ved at bruge Selleri vs. RQ

  2. Hvordan indekseres, så tekstsøgning og sortering bruger indekset?

  3. Hvordan ser jeg forespørgsler, der udføres af min mongodb?

  4. Hvorfor gridfs get virker ikke på fil-id (ObjectId) kun efter filnavn