我有一系列形成多线(路径)的点。我需要将它存储在mongodb中并在附近点查询。
如何在mongodb中存储多义线?
我可以用$ near来查询吗?
将折线保存到mongodb后,我将有一个点和距离点,需要查询数据库。
编辑:
我已经使用GPS跟踪用户的位置,我需要在mongodb中保存路径,该怎么做?
然后用户可以搜索一定距离的地方附近的路径,所以我需要用$ near函数搜索mongodb。
答案 0 :(得分:2)
所以你想要的实际上是一个LineString GeoJSON类型,MongoDB支持它:
{
"loc": {
"type": "LineString",
"coordinates": [ [ 40, 5 ], [ 41, 6 ] ]
}
}
这允许您沿着“路径”记录一组“坐标”,您希望将其包含在数据存储中作为单个对象。这样做的主要优点是你可以对这样一个对象进行地理空间查询(而不是一个独特的“点”,并检索单个文档中连接“点”的整个“集合”为“最近”。更好的是“多个形状” “这样可以轻松配合。
那么您可以根据需要使用$near
或其他运算符进行查询:
db.collection.find({
"loc": {
"$near": {
"$geometry": {
"type": "Point",
"coordinates": [ 41,5 ]
},
"$maxDistance": 10000
}
}
})
查询中的$near
运算符将返回由查询的GeoJSON对象或传统坐标点的“最近”排序的结果。
这基本上适合你。