我尝试了很多尝试,但都失败了。目前,我的查询没有失败,但它没有提供任何结果。我正在使用Mongoose v 3.8.9,它使用Mongodb v 1.4。 我认为我的坐标被正确编入索引,因为它适用于使用.geoNear()进行查询。但是,geoNear()只允许单个坐标,因此我无法指定g
以下是运行但未返回任何结果的示例。我甚至更改了其中一个文档,使其完全包含geoJSONpolygon中指定的四个点之一。
var geoJSONpolygon = { type: 'Polygon',coordinates:[[43.6582231,-79.3988945],[43.6583683,-79.3980648],[43.6583143,-79.3979845],[43.6584212,-79.3975422]] }
newLocation.find({}).where('pos').within().geometry(geoJSONpolygon).lean().exec(function(err,doc){
console.log(doc);
res.send(doc);
});
答案 0 :(得分:1)
这就是我使用的,可能对你有帮助。
Position.find(
{ geo :
{ $geoWithin : { $box :
[ [ box[0] , box[1] ] ,
[ box[2] , box[3] ] ] } }
}, function(err, response) {
if (err) return err;
console.log(response)
});
您也可以设置调试并检查结果:
mongoose.set('debug', true)