0

已经在这里并消除了错误。但是我没有得到空数组的输出。数据库中的数据如下。我在路由器中传递的坐标附近有三个文档(在 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}
        ]);
4

0 回答 0