情景。
連接到后端 (1.000.000) 的大量設備。
設備每報告幾次值,每個值都會關聯它的時間。
我想存盤所有值以供將來讀取它們以制作圖形。
我們需要將每個值定位到時間中的每一秒。
mongo中建議的資料結構:
選項 1:(資料作為物件陣列)
{
device_id: [string],
data: [
{ts: [date], val1: [any], ..., valn:[any]},
{ts: [date], val1: [any], ..., valn:[any]},
]
}
選項 2(將日期作為物件屬性的資料)
{
device_id: [string],
data: [
"2022-01-01T00:00:01": { val1: [any], ..., valn:[any] },
...
"2022-01-01T00:00:02": { val1: [any], ..., valn:[any] },
]
}
選項 3(將日期作為陣列屬性的資料)
{
device_id: [string],
data: [
"2022-01-01T00:00:01": [[any], ..., [any]],
...
"2022-01-01T00:00:02": [[any], ..., [any]],
]
}
選項4:(帶有值的資料和每個檔案都是帶有時間的device_id(第二個))
{
device_id: [string],
ts:[date], // <-- each second
data: {
val1: [any], ..., valn:[any]
}
}
選項 5:(具有陣列中的值的資料,每個檔案是一個帶有時間(第二個)的 device_id)
{
device_id: [string],
ts:[date], // <-- each second
data: [[any], ..., valn:[any]] // each value has got a position
}
還有什么推薦嗎??
uj5u.com熱心網友回復:
不想讓您的選擇更加困難,但我敢打賭以下選項:
選項1:
collection_name-> device_id , doc--> { _id:ObjectId , ts:[date] , val1:any ,... , valn:any }
選項 2:
database_name-> device_id , collection_name-> [date] , doc-> { _id:ObjectId , ts:[date] , val1:any ,... , valn:any }
選項 3:(分片資料庫/compaund index/shard key 上的集合--> device_id:1,ts:1)
doc--> { _id:[device_id], ts:[date] , val1:any ,... , valn:any }
你也可以看看特殊的時間序列集合
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/454982.html
