hey*_*hey 3 python parsing json mongodb
我有一个数据库,其格式为:
{
"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
]
}
Run Code Online (Sandbox Code Playgroud)
我有一个包含15个传感器的集合,每个传感器都具有json格式的60万行(在读数列表中占99%),我如何使用mongodb使其最佳化?我是否应该每小时将数据解析到存储桶中?我可以在Python中为此示例json提供一些示例代码吗?您能告诉我在数据查询的读数列表中构造数据的最佳方法是什么?我应该为每个传感器或仅一个桶进行15次采集吗?文档的总大小为16 mb,这是否意味着我的读数小于该值?
我将readings使用以下文档架构在MongoDB 中将数据结构化为一个集合:
{
"location_id": "11670",
"S1": 3.70,
"S2": 6.17,
"humidity": 99.90,
"temperature": 12.90,
"timestamp": 1565597520
}
Run Code Online (Sandbox Code Playgroud)
避免将数据存储为字符串,而将Numbers和Number Date用作时间戳记。当限制范围时,这使查询更加容易。另外,您还应该在要过滤查询的字段上创建索引。
如果您打算将来添加更多传感器,那么当您将location_idas字段存储在文档中并仅使用一个集合时,我认为您的架构将更加灵活。否则,在添加新位置时,您始终必须添加新集合。
我的方法将每个读数存储为一个小文档。这使得简单的分片上的时间戳的数据,例如,如果你的数据增长得太大了一个服务器。如果您将所有读数存储在一个文档中(每个传感器),那么当您达到每个文档16 MB的限制时,这只是时间问题,而在将新读数添加到现有文档时将遇到问题。可以通过上述每次阅读一个文档的模式来避免这种情况。
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |