gpt4 book ai didi

python - 如何使其最适合查询搜索,Mongodb?

转载 作者:行者123 更新时间:2023-12-01 19:29:21 24 4
gpt4 key购买 nike

我有一个格式为:

{
"location_id": "11670",
"readings": [
{
"S1": "10.77",
"S2": "7.20",
"humidity": "99.90",
"temperature": "12.80",
"timestamp": "1565597160"
},
{
"S1": "3.70",
"S2": "6.17",
"humidity": "99.90",
"temperature": "12.90",
"timestamp": "1565597520"
},
....
600 000 lines
]
}

我有一个包含 15 个传感器的集合,每个传感器都有 600 000 行(读数列表中的 99%)的 json 格式,我怎样才能做到最适合使用 mongodb 进行搜索?我应该每小时将数据解析到桶中吗?我可以在 python 中为这个示例 json 提供一些示例代码吗?您能告诉我在数据查询的阅读列表中构建数据的最佳方式是什么吗?我应该为每个传感器收集 15 个数据集还是只收集数据桶?另外一个文件的总量是 16 MB,这是否意味着我的读数小于这个数?

最佳答案

我会将数据构建到 MongoDB 中的一个集合 readings 中,文档架构如下:

{
"location_id": "11670",
"S1": 3.70,
"S2": 6.17,
"humidity": 99.90,
"temperature": 12.90,
"timestamp": 1565597520
}

避免将数据存储为字符串,而是使用 double 字和 Date为您的时间戳。这使得在限制范围时查询更容易。您还应该创建一个 index在您要过滤查询的字段上。

如果您计划在未来添加更多传感器,我认为当您将 location_id 作为字段存储在文档中并仅使用一个集合时,您的架构会更加灵活。否则,您总是必须在添加新位置时添加新集合。

我的方法将每次阅读都存储为一个小文档。这使得 shard 变得简单您的数据,例如如果您的数据对于一台服务器来说太大了,则在时间戳上。如果您将所有读数存储在一个文档中(每个传感器),那么您点击 limit of 16 MB per document 只是时间问题。并且您在向现有文档中添加新读数时会遇到问题。这可以通过上述每次阅读一个文档的模式来避免。

关于python - 如何使其最适合查询搜索,Mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59017520/

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