Join 使用联接结果重新定义数据库更新值

Join 使用联接结果重新定义数据库更新值,join,rethinkdb,Join,Rethinkdb,我的数据库上有3个表的结构 feed-提供产品名称和覆盖范围信息 {“产品”:“名称-x”, “覆盖率”:“3%” clean-产品名称中的同义词列表 {“产品”:“名称-x”, “同义词”:[“名称-x”、“x”、“产品-x”]} 设备-设备列表和一些额外信息 {“产品”:“产品-x”, “覆盖率”:“0%”,{“产品”:“产品-y”,“覆盖率”:“1%”,},{“产品”:“产品-x”, “覆盖率”:“0%” 我们将定期更新提要表,然后运行查询来更新设备表 通过执行以下操作,我可以

我的数据库上有3个表的结构

  • feed-提供产品名称和覆盖范围信息
{“产品”:“名称-x”, “覆盖率”:“3%”

  • clean-产品名称中的同义词列表
{“产品”:“名称-x”, “同义词”:[“名称-x”、“x”、“产品-x”]}

  • 设备-设备列表和一些额外信息
{“产品”:“产品-x”, “覆盖率”:“0%”,{“产品”:“产品-y”,“覆盖率”:“1%”,},{“产品”:“产品-x”, “覆盖率”:“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()
如何使用正确的信息更新设备表?目前,我只能通过查询获取值


设备表相当大,我们无法控制产品名称的名称,这就是为什么我们使用“清洗”表。此外,我可以在设备表上显示“同一”设备的多个实例

r.db("dbName")
 .table("tblName").innerJoin(
   r.db("dbName").table("tblName1"), function(tl, path){
     return tblName("value1").eq(path("value1"));
   }
 ).map({  
filterkey: r.row("left")("filterkey")
})