首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在nodejs中使用geoNear?

如何在nodejs中使用geoNear?
EN

Stack Overflow用户
提问于 2015-03-25 12:21:29
回答 1查看 2.9K关注 0票数 4

我想使用地理空间geoNear,数据库中的mongodb,Mongo查询:

代码语言:javascript
复制
db.runCommand(
   {
     geoNear: "tmp",
     near: { type: "Point", coordinates: [ 77.00000, 12.00000] },
     spherical: true,
     maxDistance : 200
   }
)

给出了mongo终端的结果,但是如何使用node.js来执行它?我正在使用mongo池和通用池来实现mongo池?

EN

回答 1

Stack Overflow用户

发布于 2015-03-25 13:36:57

对于聚合管道使用$geoNear操作符(如果使用MongoDB 2.4或更高版本,则可用)。例如:

代码语言:javascript
复制
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);       
    });      
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29255525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档