2017-10-05 103 views
0

我目前使用Cassandra(v2.2.8)和NodeJS(使用cassandra-driver npm包)。Cassandra:複雜的嵌套JSON數據的表結構

我有以下的數據結構的輸入請求的一部分:

{ 
    "id": "12345", 
    "name": "John Doe", 
    "approvedTempHours": { 
     "tempHours": [{ 
      "start": "dd/mm/yyyy", 
      "end": "dd/mm/yyyy", 
      "openinghour": "0800" 
     }, { 
      "start": "dd/mm/yyyy", 
      "end": "dd/mm/yyyy", 
      "openinghour": "0900" 
     }], 
     "Recurrence": [{ 
      "recurrence": "12", 
      "day": "Friday" 
     }] 
    }, 
    "rejectedTempHours": { 
     "tempHours": [{ 
      "start": "dd/mm/yyyy", 
      "end": "dd/mm/yyyy", 
      "openinghour": "0830" 
     }], 
     "Recurrence": [{ 
      "recurrence": "12", 
      "day": "Friday" 
     }] 
    } 
} 

我目前發現它很難設計表(一個或多個),以適應上述複合數據

因爲我理解表結構必須根據查詢來完成。在查詢時,我將需要在approvedTempHours對象內搜索,並基於start(開始日期)獲取tempHours的值 - 如果需要,我可以在查詢後提供預期JSON的結構。

到目前爲止使用maptuplesuser defined類型等,但沒能得到我所需要的結構,我已經試過

任何專家的建議,非常感謝!

PS:如果MongoDB是處理這種複雜數據模型的合適人選,我也在修復中。我堅持使用cassandra的唯一原因是由於其多個主人的100%可用性(無停機時間)。另一方面,在生產env中,MongoDB不具有彈性,它只有一個主節點,並且需要花費時間將從節點切換到主節點(如果主節點停止運行)(極不可能發生)。

回答

-1

如果你想要一個100%可用性的文檔數據庫和多個主數據庫,請使用couchbase。