我尝试过很多不同的尝试,但都失败了。目前,我的查询没有失败,但没有为我提供任何结果。我正在使用 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);
});
这就是我用的,可能对你有帮助。
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)
我是一名优秀的程序员,十分优秀!