node.js - 实用mongoose查询经纬度距离,返回的数据超过maxdistance?
ringa_lee
ringa_lee 2017-04-17 13:52:09
[Node.js讨论组]

代码如下:


location:{type:[Number],index: '2d'},

Shop.find({location:{$near:loc,$maxDistance: 5}}).limit(50).exec(function(err, doc) {
      if (err) {
        console.log(err);
      }

      callback(doc);
    });
    
    

maxDistance:5 代表查询距离此经纬度5km范围的坐标,返回的结果之中有满足条件的值(小于5km)但是也有大于5km的值,而且有大很多的,请问是哪里出了错呢?

完整的代码如下:

module.exports = function( mongoose) {
  var ShopSchema = new mongoose.Schema({
    shopName:     { type: String, unique: true },
    address:     { type: String},
    location:{type:[Number],index: '2d'},
    shopPicUrl:      {type: String},
    shopPicTrueUrl:{type: String},
    mark:  { type: String},
    open:{type:Boolean},
    shopType:{type:String},
    dish:   {type: [{
      dishName: { type: String},
      tags: { type: Array},
      price: { type: Number},
      intro: { type: String},
      dishPic:{ type: String},
      index:{type:Number}
    }]}

  });

  var Shop = mongoose.model('Shop', ShopSchema);

  var createShop = function(shopName, address,location, shopPicUrl, open,shopType,res, callback) {
    var shopInstance = new Shop({
      shopName: shopName,
      address: address,
      location: location,
      shopPicUrl: shopPicUrl,
      open:open,
      shopType:shopType
      //shopPicTrueUrl:shopPicTrueUrl
    });
    shopInstance.save(function(err){
      callback(err);
    });
  };
  return {
    createShop: createShop
  }
}
ringa_lee
ringa_lee

ringa_lee

全部回复(1)
天蓬老师

maxDistance的单位是公里吗?......
怎么不是英里、公米......?
经纬度如何转换成公里?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号