4

MongoDB の find メソッドを使用して、特定の地点周辺の緯度と経度のポイントを照会することにより、MongoDB の地理空間インデックスを使用しようとしています。エラーが発生し続けます:

MongoError: 特別なインデックスが見つかりません: 2d (インデックスが必要)、2dsphere (インデックスが必要)

約1時間グーグルした後、これに関するドキュメントがどこにあるのかわかりません。また、適切な説明が見つかりません。Mongoose を使用して作成したスキーマは次のとおりです。

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var EventSchema = new Schema ({
  name: String,
  description: String,
  location: {type: [String], index: '2dsphere'},
  time: Date,
  photo: Buffer,
  activity: String
});

mongoose.model('Event', EventSchema);

次に、findメソッドを使用して、ユーザーが指定したポイント周辺の他のイベントドキュメントを検索します。

var maxDistance = 0.09;
var lonLat = {$geometry: {type: 'Point', coordinates: [34.09,124.34] }};

Event.find({
  'geo': {
    $near: lonLat,
    $maxDistance: maxDistance
  }
}).exec(function(err, events) {
  if(err) {
    throw err;
  } else {
    return events;
  }
});

ここで間違っている構文は何ですか? 私は何か大きなものを見逃していますか?このリンクの他に、ドキュメントへの URL も同様に優れています。

4

1 に答える 1