Он должен найти все из коллекции Business, где местоположение находится на максимальном расстоянии 1000 м от входа, используя функцию $ near в mongoose.Я не использую это правильным способом.Возможно, я неправильно реализую функцию $ near.
mongoose.connect(db, { useNewUrlParser: true }, (err) => { if (err) { throw err } console.log('mongoose connected') });
username: "Pinelope",
location: {
type : "Point"
coordinates: {
0 : -90.34555
1 : 10.475
}
}
Schema
const NewBusiness = new Schema({
BusinessName: {
type: String,
required: true,
unique: false
},
//[longitude , latitude]
location: {
type: {
type: String, // Don't do `{ location: { type: String } }`
enum: ['Point'], // 'location.type' must be 'Point'
default : 'Point'
},
coordinates: {
type: [Number],
required: true
}
}
});
NewBusiness.index({
location : "2dsphere"
})
const Business = mongoose.model("Businesses", NewBusiness);
Database Query
Business.find({
location: {
near: {
$maxDistance: 1000,
$geometry: {
type: "Point",
coordinates: [36.09894, -112.110491]
}
}
}
}).find((err, results) => {
if (err) { console.log(err) }
console.log(JSON.stringify(results))
res.json(results)
}).catch((err) => {
console.log(err)
});