从表单保存坐标

时间:2013-06-14 16:19:24

标签: mongodb mongoose

我一直试图使用node / express / backbone / mongoose从表单中保存坐标 - 这可能与MongoDB本身有关

这是我的架构:

var MySchema = new mongoose.Schema({
 loc: {type:{type: String}, coordinates:[]}   
});

然后

var My = mongoose.model('My', MySchema);

var registerMy = function(loctype, longi, lati) {
var MyMy = new My({
  loc: {
    type:loctype,
    coordinates:[longi,lati]
        }
    });
 }

从HTML表单

<form>
<fieldset>
  <label>
   Loctype:
  <input type="text" name="loctype" />
  </label>
 <label>
Longitude:
<input type="number" name="longi" />
</label>
<label>
 Latitude:
<input type="number" name="lati" />
</label>
</fieldset>
<p>
 <input type="submit" value="Register Now"/>
</p>
</form>

然后我收到此错误:

  

{[MongoError:无法从对象中提取地理键,格式不正确   几何?:{type:“Point”,坐标:[“37.677163”,“ - 1.696215”]   名称:'MongoError',错误:'无法从对象中提取地理位置键,   格式错误的几何?:{type:“Point”,坐标:[“37.677163”,   “-1.696215”]}',代码:16572,n:0,connectionId:200,ok:1   }

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,您可能尝试将位置数据保存为 String Array ,确保坐标(经度和纬度)是数字数组

即坐标必须是

[ 37.677163, -1.696215 ]

而不是

 [ "37.677163", "-1.696215" ]