我试图使用$ geoWithin和$ centerSpehere返回半径范围内的项目列表,但没有运气。
这是我的项目架构:
var ItemSchema = new Schema({
type : String,
coordinates : []
});
ItemSchema.index({coordinates: '2dsphere'});
这是我应该看到的数据库项目:
{
"_id": {
"$oid": "552fae4c13f82d0000000002"
},
"type": "Point",
"coordinates": [
6.7786656,
51.2116958
],
"__v": 0
}
这在目前正在测试的服务器上运行,这里看到的坐标最终会变化。
Item.find( {
coordinates: { $geoWithin: { $centerSphere: [ [ 51, 6 ], 100/6378.1 ] } }
}, function(err, items) {
console.log(items); // undefined
});
项目始终未定义,即使该坐标距离其他坐标100Km以内。
我在控制台中没有错误。
关于发生了什么的任何想法?架构错了吗?
感谢。
答案 0 :(得分:1)
格式错了。 GeoJSON需要生活在一个领域:
{
"location" : {
"type": "Point",
"coordinates": [6.7786656, 51.2116958]
}
}