Я хочу, чтобы выполнить гео поиск координат и мой код в поле ниже:Запрос mongoose mode.find возле maxdistance не возвращает правильные результаты?
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, который должен вернуть мне точку, в пределах 5 км. Но возвращаемые фактические результаты всегда содержат точки, расстояние которых превышает 5 км (и даже имеют точку с удалением 500 км больше).
Что мне делать?
полный код:
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
}
}
я попытался это и calculatedMaxDistance будет слишком мал и ничего не вернулся , Я предполагаю, что $ maxDistance: 5 точно означает 5 км, и я получаю результат в пределах 5 км. Но также получить точку 50 км –
(5/120)/6371; давайте попробуем это. –
все еще не работает - - –