MongoDB .geoNear与find({location:$ near

时间:2018-06-26 00:38:01

标签: node.js mongodb geolocation

我已经使用MongoDB的collection.geoNear已有一段时间了,但是现在我需要使用$ near来查询我不成功的集合。在这里,我用每种方法设置了两个查询。这两个对我来说看起来完全一样。

但是,后一个返回一个空数组,而前一个返回100%

 app.get("/somerouter", (req, res) => {

   var lat = parseFloat(req.query.lat)
   var lon = parseFloat(req.query.lon)

   collection.geoNear(
     {type: "Point", coordinates: [lon,lat]},
     {maxDistance: 50000, spherical: true}
  ).then((post) => {
      res.send({post});
    }, (e) => {
     res.status(400).send(e);
   })
 });

返回空数组的代码:

app.get("/somerouter", (req, res) => {
   var id = req.params.cat

   var lat = parseFloat(req.query.lat)
   var lon = parseFloat(req.query.lon)
    collection.find(
   {
     location:
       {
        type: "Point",
        $near: {
              coordinates: [lon,lat],
              $maxDistance: 50000
            }
       }
   }
)

以下是该模式的摘录,向您展示了如何通过Mongoose设置集合:

...
location: {
       type: {type: String, default: 'Point'},
       coordinates: {type: Array, default: [0,0], index: "2dsphere"}
   }
...

0 个答案:

没有答案