2015-03-25 47 views
3

我想用地理空間geoNear,數據庫MongoDB中,蒙戈查詢:如何在nodejs中使用geoNear?

db.runCommand(
    { 
    geoNear: "tmp", 
    near: { type: "Point", coordinates: [ 77.00000, 12.00000] }, 
    spherical: true, 
    maxDistance : 200 
    } 
) 

給出結果蒙戈終端,但如何使用,我如何使用Node.js執行它蒙戈池和仿製池蒙戈池?

+1

你能解決這個問題嗎? @tekram – 2015-05-07 09:27:10

+1

@ Ramaraju.d爲後代,這是我做到的:http://pastebin.com/PuGM6i8p – Twitch 2016-01-23 17:30:46

回答

2

對於聚合管道使用$geoNear運算符(如果使用的是MongoDB 2.4或更高版本,則可用)。例如:

var mongodb = require('mongodb') 
    , MongoClient = mongodb.MongoClient 
    , express = require('express') 
    , app = express(); 
var db; 

MongoClient.connect(process.env.MONGOHQ_URL, function(err, database) { 
     db = database; 
     app.listen(1337); 
}); 

app.get('/geospatial', function(req, res) { 
     db.collection('collection_name').aggregate([ 
     { 
      "$geoNear": { 
       "near": { 
        "type": "Point", 
        "coordinates": [parseFloat(req.params.lng), parseFloat(req.params.lat)] 
       }, 
       "distanceField": "distance", 
       "maxDistance": 200, 
       "spherical": true, 
       "query": { "loc.type": "Point" } 
      } 
     }, 
     { 
      "$sort": {"distance": -1} // Sort the nearest first 
     } 
    ], 
    function(err, docs) { 
     res.json(docs);  
    });  
}); 
+1

謝謝!謝謝!謝謝!謝謝!謝謝!謝謝!謝謝!謝謝!謝謝!謝謝!謝謝!謝謝! <3 – Twitch 2016-01-23 17:26:51