2

ノード/エクスプレス/バックボーン/モングースを使用してフォームから座標を保存しようとして立ち往生しています-これは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: Can't extract geo keys from object, malformed geometry?:{ タイプ: "ポイント", 座標: [ "37.677163", "-1.696215" ] }] name: 'MongoError', err: 'Can\' t オブジェクトからジオキーを抽出します, 不正なジオメトリ?:{ タイプ: "ポイント", 座標: [ "37.677163", "-1.696215" ] }', コード: 16572, n: 0, connectionId: 200, ok: 1 }

4

1 に答える 1

2

同じ問題に遭遇しました。位置データをString Arrayとして保存しようとしている可能性があります。座標 (経度と緯度) がNumber 配列であることを確認してください。

つまり、座標は

[ 37.677163, -1.696215 ]

それ以外の

 [ "37.677163", "-1.696215" ]
于 2014-05-14T07:04:48.553 に答える