MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Lược đồ đơn giản Meteor cho dữ liệu vị trí địa lý mongo

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?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhóm MongoDB $ và hình thành nhóm rõ ràng với cột được tính toán

  2. Chuyển đổi các điều kiện của trình tạo truy vấn thành các hoạt động MongoDB bao gồm mảng các tài liệu con lồng nhau

  3. nhà sư vs cầy mangut cho Mongodb

  4. Làm thế nào để tìm nscanned trong mongoose?

  5. Cách lấy đầu ra của mongo shell (ba chấm) cho lệnh chưa kết thúc