我的rethinkdb上有3个表的结构。
{“product”:“name-x”, “覆盖率”:“3%”}
{“product”:“name-x”, “synonymous”:[“name-x”,“X”,“product-x”]}
{“product”:“product-x”, “coverage”:“0%”},{“product”:“product-y”,“coverage”:“1%”},{“product”:“product-x”, “覆盖率”:“0%”}
我们将定期更新 Feed 表,然后运行查询以更新设备表。
执行以下操作,我可以合并所有表格,并从每个设备获得正确的覆盖范围。
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()
如何使用正确的信息更新设备表?现在,我只能通过查询获得值。
设备表非常大,我们无法控制产品名称,这就是我们使用“清洁”表的原因。此外,我可以在设备表上多次出现“相同”设备。
答案 0 :(得分:1)
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")
})