MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Prosty schemat Meteor dla danych lokalizacji geograficznej mongo

Hmm, nie znam dokładnie rozwiązania Twojego procesu zapisywania geokoordów. Ale jeśli chcesz zaoszczędzić lng i lat, musisz podać prefiks. Czemu? Geokoordy mają różne zakresy walidacji. Szerokość geograficzna jest dostępna tylko od -90 do 90, a długość geograficzna od -180 do 180. Jeśli nie zapiszesz prefiksu, jak chcesz się upewnić, która współrzędna jest? Kolejną wskazówką, którą zrobiłem kiedyś fałszem, jest przechowywanie współrzędnych w kolejności długości i szerokości geograficznej.

Schemat, którego używam, wygląda tak:

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

Teraz tworzysz zagnieżdżone schematy. Po prostu rozszerz GeocoordsSchema o LocationSchema i dodaj atrybut.

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

Jeśli chcesz mieć tablicę LocationSchema, możesz umieścić schemat w nawiasach [].

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

Nie testowałem, ale w ten sposób tworzę i zagnieżdżam różne schematy. Cóż, to rozwiązanie wymaga identyfikatora lat i lng. Dlaczego nie chcesz poprzedzić swoich danych?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jakie jest zachowanie ustawienia limitu czasu w wykonaniu potoku agregacji w sterowniku MongoDB Java?

  2. Wstaw osadzony dokument do nowego pola w dokumencie mongodb

  3. Znajdowanie rekordów mongoDB w partiach (przy użyciu adaptera mongoid ruby)

  4. Jak pogrupować według MongoDB

  5. PHP Mongo Błąd odczytu z gniazda