mysql - 使用nodejs和数据库存储GPS纬度和经度的最佳方式

标签 mysql node.js mongodb gps database

我想知道使用 NodeJS 和一些数据库服务器实时存储设备 GPS 位置信息的最佳方法是什么。

示例:

目前有 5,000 台设备连接到服务器,每台设备都在发送有关其 GPS 位置的信息,最大超时时间为 1 秒。

NodeJS 服务器大约每分钟将接收 300,000 个 PUT 请求。

Too much request, I know it.

另一个需要考虑的重要因素是数据库服务器在技术上是另一个服务器或实例。

By the way, I plan to use Amazon AWS or Microsoft Azure as a cloud server provider.

所以我的问题是,实时存储这些信息的最有效方法是什么?

我的选择包括 MySQL、MongoDB、PostgreSQL 等。 他们可以解释为什么最好使用您推荐的选项。 谢谢!

最佳答案

我会说 - MongoDB。

为什么我会这么说 -

MongoDB 提供了许多索引和查询机制来处理地理空间信息。您可以轻松地将位置数据存储为具有以下坐标轴顺序的 GeoJSON 对象:经度、纬度。 MongoDB 最近还支持其他 GeoJSON 类型:MultiPoint、MultiLineString、MultiPolygon、GeometryCollection。

MongoDB 还提供了大量查询运算符,使您可以轻松查询地理空间数据,例如:

$geoWithin
$geoIntersects 
$near

一个典型的例子是

{
   location: {
      type: "Point",
      coordinates: [40.7829, 73.9654]
   },
   name: "Central Park, New York City"
}

您可以在https://docs.mongodb.com/v3.2/tutorial/geospatial-tutorial/查看各种示例。

最后,MongoDB 允许您在地理空间数据上构建 2D 索引。看看你提到的用法。它应该会派上用场。

关于mysql - 使用nodejs和数据库存储GPS纬度和经度的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492874/

相关文章:

mysql - 将 "Execute statement"结果放入 MySQL 中的变量中

mysql - 无法在 docker 容器中写入特殊字符,如 "á" "é"mysql 服务器

mysql - 使用复合主键作为外键

mysql - 您是否使用过任何仅数据库托管服务?

javascript - 通过 Promise 将 Node js 连接到 Mongo Atlas

javascript - Mongoose - 在保存文档之前为每个对象生成 ObjectID

node.js - 如何在 Mongoose 中的虚拟对象中填充对象

SSL 不可用的 MongoDB 安装

mongodb - 如何对 $meta : "textScore" with Loopback? 上的 $text 搜索进行排序

mongodb - windows 7 64 位正在安装 32 位的 meteor