2014-02-10 74 views
0

如何查詢maxo距離爲1km的geoNear模型?GeoNear with Mongoose

這是我的貓鼬模式 -

var userDestinationSchema = mongoose.Schema({ 

    uid: String,     
    update_time: Date,   

    location:{     //<INDEXED as 2d> 
     lon: Number, 
     lat: Number 
    } 
}); 



var userDestinationModel = mongoose.model('userDestinationModel', userDestinationSchema); 

我想這樣做的,這是行不通的。

userDestinationModel.geoNear([parseInt(req.params.lon,10),parseInt(req.params.lat,10)], 
       { maxDistance : 1, spherical : true }, 
       function(err, results, stats) { 
        console.log(results); 
       }); 


但是當我刪除spherical : true它的工作原理。

maxDistance的單位是多少? //回答Radian在傳統座標的情況下。

DataSample:

{ _id: ObjectId("52f89d8cdbe6f9ea80344fd9"), location: { lon: 165, lat: 165 }, uid: "testuser2", update_time: ISODate("2014-02-10T09:36:12.705Z") } 
{ _id: ObjectId("52f89d97dbe6f9ea80344fda"), location: { lon: 166, lat: 166 }, uid: "testuser3", update_time: ISODate("2014-02-10T09:36:23.236Z") } 
{ _id: ObjectId("52f8a16edbe6f9ea80344fdb"), location: { lon: 164, lat: 164 }, uid: "testuser4", update_time: ISODate("2014-02-10T09:52:46.464Z") } 
{ _id: ObjectId("52f8a173dbe6f9ea80344fdc"), location: { lon: 164, lat: 164 }, uid: "testuser1", update_time: ISODate("2014-02-10T09:52:51.125Z") } 
{ _id: ObjectId("52f8a17fdbe6f9ea80344fdd"), location: { lon: 165, lat: 165 }, uid: "testuser7", update_time: ISODate("2014-02-10T09:53:03.365Z") } 

回答

2

單位是米,所以你可能不會得到正確的答案。 對於公里指定50*1000

也許你需要根據該編輯您的查詢文檔:

http://docs.mongodb.org/manual/reference/command/geoNear/

{ near: POINT_COORDINATES.....

+0

依然沒有結果。我正在使用貓鼬。 – rahulroy9202

+0

請回答這個問題。我已經用示例數據更新了它。 http://mongoosejs.com/docs/api.html#model_Model.geoNear – rahulroy9202

+0

我使用的是傳統座標,所以距離以弧度表示。 – rahulroy9202