已经在这里并消除了错误。但是我没有得到空数组的输出。数据库中的数据如下。我在路由器中传递的坐标附近有三个文档(在 req 中传递的数据:[-0.118093, 51.509864])
对于架构
const vendorSchema = mongoose.Schema({
restauarant_official_name : {type : String, required: true},
location: {
type: {
type: String, // Don't do `{ location: { type: String } }`
enum: ['Point'],
},
coordinates: [0, 0]
}
});
vendorSchema.index({ coordinates : "2dsphere" });
并查询如下
const maxDistance = parseFloat(req.query.distance);
const lng = parseFloat(req.query.lng);
const lat = parseFloat(req.query.lat);
const coordinates = [lng,lat];
console.log(coordinates,maxDistance);
let nearVendors = await Vendor.aggregate([
{$geoNear: {
"spherical": true,
"near": coordinates,
"maxDistance": maxDistance,
"distanceField": 'distance'
}},
{$limit: 3}
]);