0

次のスキーマがある場合:


var zipSchema = new mongoose.Schema({
  zc_code             : String,
  zc_population       : Number,
  zc_households       : Number,
  zc_housevalue       : Number,
  zc_householdincome  : Number,
  zc_statecode        : String,
  zc_state            : String,
  zc_city             : String,
  zc_cityname         : String,
  modified_at         : Date, 
  center: {
    type: {type: String},
    coordinates: []
  }
})
zipSchema.index({ center: '2dsphere' });


そして、私はこれを試します:


    var zipInfo = {
      zc_code: '78746',
      zc_population: 26928,
      zc_households: 10839,
      zc_housevalue: 344000,
      zc_householdincome: 100571,
      zc_latitude: '30.295657',
      zc_long: '-97.813727',
      zc_statecode: 'TX',
      zc_state: 'Texas',
      zc_city: 'AUSTIN',
      center: {
        coordinates: [-73.7567, 42.6525],
        type: 'Point'
      }
    }

    Zip.create(zipInfo, function(err) { if (err) console.log(err) })

毎回このエラーが発生します:

MongoError: 位置オブジェクトが必要ですが、位置配列が正しい形式ではありません

何が欠けていますか。私はstackoverflowを検索し、geojsonのいくつかの異なる設定を見ました。私はmongoosejsテストからいくつかのものを直接コピーしようとしましたが、それでもエラーが発生します. 私は行き止まりにいます。どんな助けでもいただければ幸いです

4

2 に答える 2

1

私にとってもうまくいきませんでしたが、ジオメトリフィールドに「loc」という名前を付けて修正しました:http://docs.mongodb.org/manual/core/2dsphere/

ここで私が使用した例:

var cableSchema = new mongoose.Schema({
    reference: String,
    owner: String,
    status: String,
    setup: String,
    model: Number,
    loc: {
        type: {type:String},
        coordinates: Array
    }
});
于 2013-09-16T02:58:19.297 に答える