如何使用mongo-sails在Sails js中存储点(lat,lng)

时间:2014-07-28 11:06:45

标签: node.js geospatial sails.js waterline sails-mongo

我正在尝试将lat,lng存储在我的模型中。我将我的模型定义为

attributes: {
    point: {type: 'json'}
}  

我将坐标简单地作为[x,y]传递。但它将点存储为NULL。 所以,如果有人知道如何处理它,请帮助我。我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

我尝试使用更加时髦的字段类型做类似的事情,但发现将其分解为原始类型效果更好。

module.exports = {

  attributes: {

    speed: {
      type: 'string'
    },

    heading: {
      type: 'string'
    },

    altitude: {
      type: 'string'
    },

    altitudeAccuracy: {
      type: 'string'
    },

    longitude: {
      type: 'float',
      required: true
    },

    latitude: {
      type: 'float',
      required: true
    },

    accuracy: {
      type: 'string'
    }

  }

};

这是存储地理数据的完整对象。

答案 1 :(得分:0)

当您将地理位置作为JSON属性时,您可以像这样存储位置: { "type": "Point", "coordinates": [ 7.88, 47.78 ] } }

然后在此字段中在MongoDB中创建2dsphere索引

db.collection.createIndex({ geolocation: "2dsphere" })

您可以使用MongoDBs spatial queries