我正在使用node.js的mongodb。我有包含位置信息的文档,因此模式是
{
name: String,
location: {
x: Number,
y: Number
}
}

我想从一个点获取距离一定距离的文档。所以我需要计算x^2+y^2
的值并查看它是否小于距离的平方。你能告诉我怎么做吗?
答案 0 :(得分:1)
首先是
{
name: String,
location: [
x: Number,
y: Number
]
}
location应该是一个数组,然后你可以使用$ geonear
db.places.find(
{
loc:
{ $near :
{
$geometry : { type : "Point" , coordinates: [ 40 , 5 ] },
$maxDistance : 500
}
}
}
)
它神奇!退房 - http://docs.mongodb.org/v2.4/reference/operator/query/near/
另一个例子是......
db.places.find( { loc :
{ $near : [ 40 , 5 ] ,
$maxDistance : 10
} } )