2
我在rethinkdb上有3個表的結構。使用連接結果RethinkDB更新值
- 進料 - 具有產品名稱和覆蓋信息
{ 「產品」: 「名稱-X」, 「覆蓋」: 「3%」}
- 清潔 - 產品名稱同義詞清單
{ 「產品」: 「名稱-X」, 「同義」:[ 「名稱-X」, 「X」, 「產品X」]}
- 設備 - 的一個列表設備和一些額外信息
{ 「產品」: 「產品X」, 「覆蓋」: 「0%」},{ 「產品」: 「產品-Y」, 「覆蓋」: 「1%」},{「product」:「product-x」, 「coverage」:「0%」}
我們將定期更新飼料表,然後運行查詢以更新設備表。
執行以下操作,我可以合併所有表格並從每個設備獲取正確的覆蓋範圍。
r.db('devices').table('cleaning').innerJoin(r.db('devices').table('feed'),
function(cleaningRow, feedRow) {
return cleaningRow('synonyms').contains(feedRow('product'))
}).zip().innerJoin(r.db('devices').table('devices').hasFields('product'),
function(mergeRow, devicesRow) {
return mergeRow('synonyms').contains(devicesRow('product'))
}).zip()
我怎樣才能更新設備表用正確的信息?目前,我只能通過查詢獲得價值。
設備表格非常大,我們無法控制產品名稱的使用方式,這就是我們使用「清潔」表格的原因。另外,我可以在設備表中有多個「相同」設備的發生。