使用循环对数据进行排序,以查找离用户最近的餐厅

我将餐厅的地理坐标存储在MongoDB数据库中。

现在,我需要创建一个循环来获取所有餐馆的地理坐标和用户地理坐标,以获得最近的5家餐馆。我不知道如何循环和匹配用户的地理坐标。

我想要恰好有5家餐厅在我附近,因为Google place API集成在前端,所以我只能获得我需要匹配的地理坐标,以便在我附近获得确切的餐厅。

nearby_restro: (req, res) => {var user_id = req.user;var reqdata = req.body;var lat = reqdata.lat;
var long = reqdata.long; 
 locationModel.find({
"loc": {$near: [longitude = long, latitude = lat]}}, (err, data) => {console.log(err)
console.log(data)})
model 
   userId :{  type: mongoose.Schema.Types.ObjectId, required: true, auto: true},
    loc: {
      type: {
        type: String, // Don't do `{ location: { type: String } }`
        enum: ['Point'], // 'location.type' must be 'Point'
      },
      cordinates:[{
        longitude:{type:String },
        latitude:{type:String },
      }],

我希望通过使用restro和用户在long和lat中的坐标来获得用户的所有附近餐厅。我使用的是用户坐标,但这个查询对我不起作用。

转载请注明出处:http://www.hnph-smd.com/article/20230329/1491385.html