В пн goose документы говорится, что пн goose имеет вспомогательный метод для $ geoWithin .
Во-первых, схема должна быть обновлена следующим образом:
const AdScheme = new Schema({
location: {
type: {
type: String,
default: 'Point',
enum: ['Point']
},
coordinates: [Number]
},
type: String,
name: String
});
А затем запросите вот так:
AdModel.find().where('loc')
.within({ center: [50,50], radius: 10, unique: true, spherical: true })
Другой вариант будет использовать агрегацию mongoDB $ geoNear .
Затем вы можете использовать это в пн goose как это:
const geoNearOptions: {
... //todo
}
AdModel.aggregate([
{ $geoNear: geoNearOptions}
])