Как создать 2dsphere индекс внутри массива объектов? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть эта схема, и я хочу запросить города рядом с исходным местоположением, используя поле position.

import mongoose, { Schema } from "mongoose";

var codcomSchema = new Schema({
    code: String,
    id: Number,
    position: {
        type: { type: String, enum: ['Point'], default: "Point" },
        coordinates: { type: [Number], index: { type: '2dsphere' } }
    }
}, { _id: false });

var citySchema = new Schema({
    name: String,
    code: String,
    zone: String,
    country: String,
    cap: [codcomSchema],
});

export default mongoose.model('city', citySchema);

Правильно ли объявлен индекс?Это запрос, который я сделал, но он возвращает ошибку.

let cities = await cityModel.find({
    "cap.position": {
         $near: {
             $maxDistance: distance,
             $geometry: {
                 type: "Point",
                 coordinates: coordinate
              }
         }
     }
});

Это ошибка enter image description here

...