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?