$ geoNear требует 2d или 2dSphere индекса, но ни один не был найден - PullRequest
0 голосов
/ 27 марта 2020

Это проблема, с которой я столкнулся при работе с гео Json данными. Я хотел бы заранее поблагодарить, если кто-то может указать решение для меня.

** Схема ** Добавлена ​​2dsphere как индекс внутри координат, но все еще не работает


const polygonSchema = new mongoose.Schema({
  type:String,
  properties: {
    REGTYPE_ID: Number,
    REGTYPE: String,
    NAVWAT_ID: Number,
    Shape_Leng: Number,
    Shape_Area: Number
  },
  geometry: {
    coordinates: {
      type: [Number],
      index: '2dsphere',
      required: true
    },
    type: {
      enum: ["Polygon"]

    }
  }
});
polygonSchema.index({ geometry: '2dsphere' }, { background: false })
const Polygon = mongoose.model("Polygon", polygonSchema);

exports.polygonSchema = polygonSchema;
exports.Polygon = Polygon;

Маршрут Может ли какой-то обзор корректен приведенный ниже запрос?

  // console.log(req.query);
  try {
    Polygon.aggregate([
      {
        $geoNear: {
          near: {
            type: "Feature",
            // geometry: {
              coordinates: [
                parseFloat(req.query.lng),
                parseFloat(req.query.lat)
              ]
            // }
          },
           distanceField: "geometry.distance",
          maxDistance: 10000,
          spherical: true
        }
      }
    ]).then(function(Locs) {
      res.send(Locs);
    });
  } catch (ex) {
    console.log(ex);
  }
});```

***Error Stack Trace*** the stack trace shows that a geoNear requireees 2d or 2dsphere but i even done it in my model




```(node:4928) UnhandledPromiseRejectionWarning: MongoError: $geoNear requires a 2d or 2dsphere index, but none were found```

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...