Rất tiếc, tôi không biết chính xác giải pháp cho quá trình tiết kiệm các lãnh thổ địa lý của bạn. Nhưng nếu bạn muốn lưu lng và lat, bạn phải chuyển một tiền tố. Tại sao? Giếng địa lý có phạm vi xác nhận khác nhau. Vĩ độ chỉ có sẵn từ -90 đến 90 và Kinh độ từ -180 đến 180. Nếu bạn không lưu tiền tố, bạn muốn đảm bảo đó là tọa độ nào? Một gợi ý khác mà tôi đã làm sai một ngày nào đó là lưu trữ các coords theo thứ tự kinh độ, vĩ độ.
Lược đồ tôi đang sử dụng trông giống như sau:
GeocoordsSchema = new SimpleSchema({
lng: {
type : Number,
decimal: true,
min: -180,
max: 180
},
lat: {
type : Number,
decimal: true,
min: -90,
max: 90
}
});
Bây giờ bạn tạo các lược đồ lồng nhau. Chỉ cần mở rộng GeocoordsSchema với LocationSchema và thêm một thuộc tính.
LocationSchema = new SimpleSchema({
type : {
type : String,
autoValue: function() {
return "Point";
}
},
coordinate: {
type: GeocoordsSchema
}
});
Nếu bạn muốn có một mảng LocationSchema hơn bạn có thể đặt lược đồ trong [] dấu ngoặc vuông.
BeachesSchema = new SimpleSchema({
loc: {
type: [LocationSchema]
}
});
Tôi đã không thử nghiệm nhưng đó là cách tôi tạo và lồng các lược đồ khác nhau. Giải pháp này cần một định danh là vĩ độ và lng. Tại sao bạn không muốn thêm tiền tố vào dữ liệu của mình?