NodeJS Mongoose Mongodb中的地理空间查询错误

时间:2015-03-05 07:29:53

标签: javascript node.js mongodb mongoose

我正在Mongodb的地理空间查询中尝试。到目前为止,它非常酷,但我遇到了一堵墙。

我成功地创建了一个2dsphere索引,并且成功地能够从MongoDB CLI执行$ near查询,但是当我尝试从NodeJS中的Mongoose执行查询时,我收到一个奇怪的错误。

这是我在NodeJS中运行的代码:

var query = model.where('loc').near({ center: [50, 50], maxDistance: 5000 });
query.exec(function(err, myModel){
   if(err){console.error(err);}
    res.json(myModel);
});

这给了我错误: [错误:不能对字符串使用$ maxDistance。]

所以我尝试运行在MongoDB CLI中运行的原始查询:

model.find({loc: {"$near": {"$geometry": {"type": "Point" , "coordinates": [ 50 , 50 ]},"$maxDistance": 500,"$minDistance": 0}}},function(err,myModel) {
        if(err){console.error(err);}
        res.json(myModel);
    }); 

我收到类似的错误: [错误:无法在字符串中使用$ near。]

从我在环顾网站时发现,看起来它可能与mongoose如何解析数据并将其传递给MongoDB有关,但我并不完全确定。我的查询基于我在这里找到的问题: http://mongoosejs.com/docs/api.html#query_Query-near http://docs.mongodb.org/manual/reference/operator/query/near/

任何解决此错误的想法都将不胜感激!

0 个答案:

没有答案