gpt4 book ai didi

mongodb 最有效的方式来存储 gps 跟踪数据

转载 作者:可可西里 更新时间:2023-11-01 09:34:00 26 4
gpt4 key购买 nike

我需要存储来自不同用户的 gps 点(时间戳、经度、纬度)。

我应该有一个单独的用户集合和一个 gps 数据集合:

用户

{_id: 1, name: 'A'}

全局定位系统

{_id: 1, userId: 1, timestamp: ..., lon: ..., lat: ...}
{_id: 2, userId: 1, timestamp: ..., lon: ..., lat: ...}

或者我可以将 gps 数据作为数组保存到相应的用户文档中吗:

用户

{_id: 1, name: 'A', gps: [
{timestamp: ..., lon: ..., lat: ...}
{timestamp: ..., lon: ..., lat: ...}
]}

我知道选项 2 对于 SQL DB 来说是疯狂的,但我不确定对 MongoDB 的性能影响

最佳答案

您必须根据应用程序的访问策略设计您的 MongoDB 集合。

一般来说,如果出现以下情况,您应该将点嵌入到用户文档中:

  • 嵌入数据(点)总是在用户信息被检索时被检索检索。如果您总是检索用户信息但很少需要 GPS 数据,那么嵌入就不会那么好。

  • 嵌入数据不受修改(或至少很少)

  • 基数不是太大(记住 MongoDB 文档最大大小为 16MB)。如果每个用户有 100K 积分,请拆分集合

此外,将点嵌入到用户文档中,您可以利用文档级锁定(如果您使用的是 Wired Tiger 存储引擎)。否则,如果您在并发系统中,使用两个集合设计,您必须在应用程序级别自行处理锁定机制。

关于mongodb 最有效的方式来存储 gps 跟踪数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com