如何在rethinkdb中使用嵌入式链接加入

时间:2015-06-14 17:19:13

标签: rethinkdb

为人们提供类似的架构:

[{
  "id": 1,
  "name": "Darth",
  "family": [2,3]
},
  {
    "id": 2,
    "name": "Luke"
  },
  {
    "id": 3,
    "name": "Leia"
  }
]

如何让Darth和外部联盟回归他的全家?

2 个答案:

答案 0 :(得分:1)

我希望family中的ID替换为家庭成员的文档,您可以使用map进行get

像这样:

r.table('people').get(1) // Get Darth
  // Add a `family` property to Darth
  .merge(function (row) {
    return {
      // Map all the family member ids to their respective documents
      'family': row('family').map(function (id) {
        return r.table('people').get(id);
      })
    }
  })

此查询的结果将是:

{
  "family": [
    {
      "id": 2 ,
      "name":  "Luke"
    } ,
    {
      "id": 3 ,
      "name":  "Leia"
    }
  ] ,
  "id": 1 ,
  "name":  "Darth"
}

答案 1 :(得分:1)

结束以下,这比我相信的地图更高效。它将使用id

上的默认索引
$(focusWindow);

$('iframe').on('mouseenter', function () {
    window.targetedIframe = this;
    $(window).on('blur', iframeclicked);
}).on('mouseleave', function () {
    $(window).off('blur', iframeclicked);
    if($(document.activeElement).is('iframe'))
        focusWindow();
});

function iframeclicked(){
    console.log('iframe clicked', window.targetedIframe);
}

function focusWindow(){
    $('<div/>').attr('tabindex',-1).appendTo('body').focus().remove();
}