在MongoDB中存储路由

在MongoDB中存储路由,mongodb,geolocation,geojson,Mongodb,Geolocation,Geojson,我正在为moblie应用程序开发后端。移动应用程序可以启动/停止gps跟踪,因此最终我们有了某种路由对象。他们每隔10-30秒(可能经常)向服务器发送gps坐标(lng/lat)。问题是:在mongo中存储这些坐标的最佳方式是什么 例如,我可以存储它们,但如果路线太长怎么办?据我记忆所及,文档最大大小为16MB。我可以使用一些更新查询动态更新这个对象吗?我的意思是,每次应用程序发送新点时,只需将其添加到末尾,而无需从db中获取所有对象,将新点添加到其中并保存 也许将每个点存储为文档是有意义的?您

我正在为moblie应用程序开发后端。移动应用程序可以启动/停止gps跟踪,因此最终我们有了某种路由对象。他们每隔10-30秒(可能经常)向服务器发送gps坐标(lng/lat)。问题是:在mongo中存储这些坐标的最佳方式是什么

例如,我可以存储它们,但如果路线太长怎么办?据我记忆所及,文档最大大小为16MB。我可以使用一些更新查询动态更新这个对象吗?我的意思是,每次应用程序发送新点时,只需将其添加到末尾,而无需从db中获取所有对象,将新点添加到其中并保存

也许将每个点存储为文档是有意义的?

您可以使用它附加到地理坐标,即

db.collection.update({'_id': 'foo'}, {'$push': {'geo_field.coordinates': [999,999]}})
至于16 MB文档大小限制,如果您认为可以超过此限制,则可以选择其他选项:

  • 将坐标存储为,并使用其他字段对线进行分组
  • 例如,使用“$each”和“$slice”的组合将数组大小限制为最后n个元素

您可能需要查看并存储起始坐标的geodna以及路线中其余点的delta。

16Mb就足够了,您不认为吗?