sql >> Databáze >  >> NoSQL >> MongoDB

Meteorické jednoduché schéma pro mongo geolokační data

Hmm, neznám přesně řešení vašeho procesu ukládání geosouřadnic. Ale pokud chcete uložit lng a lat, musíte zadat prefix. Proč? Geosouřadnice studny mají různé rozsahy ověření. Zeměpisná šířka je k dispozici pouze od -90 do 90 a délka od -180 do 180. Pokud neuložíte předponu, jak chcete zajistit, která je která souřadnice? Další rada, kterou jsem jednoho dne udělal falešně, je uložit souřadnice v pořadí zeměpisné délky a šířky.

Schéma, které používám, vypadá takto:

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

Nyní vytvoříte vnořená schémata. Stačí rozšířit GeocoordsSchema o LocationSchema a přidat atribut.

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

Pokud chcete mít pole LocationSchema, můžete schéma zabalit do [] hranatých závorek.

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

Netestoval jsem, ale to je způsob, jak vytvářím a vnořuji různá schémata. Toto řešení potřebuje identifikátor lat a lng. Proč nechcete svá data předponovat?



  1. Může redis zakázat odpovědi na zřetězené příkazy?

  2. Načíst jednu vlastnost z dokumentu

  3. Mongo najít hodnotu s neznámým nadřazeným klíčem

  4. Seskupte a počítejte přes počáteční a koncový rozsah