loopback:使用mongo 2.2进行地理查询

时间:2016-11-23 10:40:35

标签: node.js mongodb loopbackjs

我使用loopback查询MongoDb数据库。数据库有一个我必须处理的旧版本2.2

不幸的是,它似乎无法使用near子句执行查询,因为它组成了一个像这样的对象:

location: {
    $near: {
      $geometry: {
        coordinates: [12.0684,41.2432],
        type: 'Point',
      },
    },
    $maxDistance: 10
}

相反,我使用的db版本允许以这种格式进行查询:

location: {
    $near: [12.0684,41.2432],
    $maxDistance: 10
}

我的问题是:有没有办法可以强制loopback-connector-mongodb在后​​者的查询中回退?

谢谢

1 个答案:

答案 0 :(得分:0)

是的,有一种方法可以做到这一点。您需要获取连接器,提取集合并执行查询。像这样:

 Model.getDataSource().connector.connect(function (err, db) {
   var collection = db.collection(Model.getModelName());
   collection.find(query, function (err, res) { // define whichever query you need
     if(err) {
       cb(err);
       return;
     }
     res.toArray(function (err, realRes) { // this part is crucial
     // otherwise if you try to print res you will get a dump of the db object
       if(err) {
         cb(err);
         return;
       }
     }
 }