Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在同一个表中的多个ID上联接_Javascript_Join_Rethinkdb - Fatal编程技术网

Javascript 在同一个表中的多个ID上联接

Javascript 在同一个表中的多个ID上联接,javascript,join,rethinkdb,Javascript,Join,Rethinkdb,我正在尝试在多个ID上连接两个表(与和单词)。我真的不知道该怎么解释,所以我想展示一下我的意思 与-表的摘录: { "date": 1427675857789, "hero": "7b88a237-c288-48f1-bf45-2dcd9f812b54", "id": "017fe06a-e37d-4f23-92a3-bc52b38de4d7", "nemesis": "e87a6252-6d08-4c5a-b057-2718e8c07d93", "

我正在尝试在多个ID上连接两个表(
单词
)。我真的不知道该怎么解释,所以我想展示一下我的意思

-表的摘录:

{
    "date": 1427675857789,
    "hero":  "7b88a237-c288-48f1-bf45-2dcd9f812b54",
    "id":  "017fe06a-e37d-4f23-92a3-bc52b38de4d7",
    "nemesis":  "e87a6252-6d08-4c5a-b057-2718e8c07d93",
    "points": {
        "hero": 58659,
        "nemesis": 3021
    }
}
{
    "id":  "7b88a237-c288-48f1-bf45-2dcd9f812b54" ,
    "word":  "i"
},
{
    "id":  "e87a6252-6d08-4c5a-b057-2718e8c07d93" ,
    "word":  "the"
}
摘自
单词
-表格:

{
    "date": 1427675857789,
    "hero":  "7b88a237-c288-48f1-bf45-2dcd9f812b54",
    "id":  "017fe06a-e37d-4f23-92a3-bc52b38de4d7",
    "nemesis":  "e87a6252-6d08-4c5a-b057-2718e8c07d93",
    "points": {
        "hero": 58659,
        "nemesis": 3021
    }
}
{
    "id":  "7b88a237-c288-48f1-bf45-2dcd9f812b54" ,
    "word":  "i"
},
{
    "id":  "e87a6252-6d08-4c5a-b057-2718e8c07d93" ,
    "word":  "the"
}
我想把这两个表连接起来,得到如下结果:

{
    "date": 1427675857789,
    "hero": "i",
    "nemesis": "the",
    "points": {
        "hero": 58659,
        "nemesis": 3021
    }
}
这就是我目前所拥有的:
r.table(“vs”).eqJoin(“hero”,r.table(“words”)).zip()
,这让我明白了:

{
    "date": 1427675857789 ,
    "hero":  "7b88a237-c288-48f1-bf45-2dcd9f812b54" ,
    "id":  "7b88a237-c288-48f1-bf45-2dcd9f812b54" ,
    "nemesis":  "e87a6252-6d08-4c5a-b057-2718e8c07d93" ,
    "points": {
        "hero": 60507 ,
        "nemesis": 3504
    } ,
    "word":  "i"
}
我有点困惑,我怎么才能加入到英雄行和复仇女神行

尽管我很高兴看到
表中的大多数内容(不管
id
是否存在)以及与
hero
nemesis
id相对应的两个词


编辑:我想了些什么,但现在我只能得到第一份文档,这与我想做的事情的目的背道而驰。。。以下是我得到的:
r.table(“vs”).eqJoin(“hero”,r.table(“words”)).zip().map(r.row.merge({hero:r.row(“word”)))).eqJoin(“nemesis”,r.table(“words”).zip().map(r.row.merge({nemesis:r.row(“word”)))))。没有([“word”,“id”))
好吧,我终于做到了

如果有人感兴趣,这就是我的新需求:

r.table("versus").concatMap(function(v){
  return r.table("words").getAll(v("hero"), {index: "id"}).map(function(w){
    return r.branch(
      v("hero").eq(w("id")),
      v.merge({hero: w("word")}),
      v
    )
  })
}).concatMap(function(v){
  return r.table("words").getAll(v("nemesis"), {index: "id"}).map(function(w){
    return r.branch(
      v("nemesis").eq(w("id")),
      v.merge({nemesis: w("word")}),
      v
    )
  })
}).without("id")