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()
我怎样才能更新设备表用正确的信息?目前,我只能通过查询获得价值。
设备表格非常大,我们无法控制产品名称的使用方式,这就是我们使用“清洁”表格的原因。另外,我可以在设备表中有多个“相同”设备的发生。