如何对嵌套较深但可预测放置的属性执行 eqJoin()?

How can I perform an eqJoin() on a deeply-nested but predictably-placed attribute?

我有一个 table(数据库名称是 libstats,table 名称是 flowcells),里面装满了文档,所有文档的结构如下:

      {
        "barcode": "C3W9UACXX",
        "id": "0021732f-2c42-4e9a-90fd-c68bb0d998dc",
        "lanes": {
            "1": [
                {
                    "bases": 2431000000,
                    "library_id": "SL58263",
                    "perc_raw_clusters": 5.5,
                    "pf_reads": 24312986,
                    "q30": 92.23,
                    "qscore": 35.82,
                    "reads": 25834646
                },
                {
                    "bases": 2121000000,
                    "library_id": "SL58264",
                    "perc_raw_clusters": 4.83,
                    "pf_reads": 21209905,
                    "q30": 91.57,
                    "qscore": 35.62,
                    "reads": 22701386
                }...],
            "2": [
                {
                    "bases": 2431000000,
                    "library_id": "SL58263",
                    "perc_raw_clusters": 5.5,
                    "pf_reads": 24312986,
                    "q30": 92.23,
                    "qscore": 35.82,
                    "reads": 25834646
                },
                {
                    "bases": 2121000000,
                    "library_id": "SL58264",
                    "perc_raw_clusters": 4.83,
                    "pf_reads": 21209905,
                    "q30": 91.57,
                    "qscore": 35.62,
                    "reads": 22701386
                }...],
         },
         //more keys
  }

lanes 对象将始终具有相同的键(数字 1 到 8),并且与这些键中的每一个关联的数组中的对象将始终具有 library_id 属性。我需要将 library_name 添加到这些对象中的每一个,这样我就会得到这样的结果:

{ ... "lanes":{ “1”:[ { "bases": 2121000000, "library_id": "SL58264", "library_name": 'my_library_name', <---添加的属性 "perc_raw_clusters":4.83, "pf_reads": 21209905, "q30": 91.57, "qscore": 35.62, "reads":22701386 }, ... ],... ... {

我有另一个 table 具有 library_name 属性(数据库名称 libraries,table 名称 libraries),结构更简单:

{
   library_id: 'SL123456',
   library_name: 'my_library_name'
}

是否有 RQL 查询可用于完成此操作?在更简单的 table 上,eqJoin() 工作得很好,但我无法让它与这个更复杂的结构一起工作。

如果 lanes 是一个数组而不是一个对象,这会更容易,但是对于当前的文档结构,这样的查询应该可以做到:

r.db('libstats').table('flowcells').merge(function(flowcell) {return {
    'lanes': flowcell('lanes').keys().map(function(n) {
      return r.expr([n, flowcell('lanes')(n).merge(function(lane) {
        {'library_name': r.db('libraries').table('libraries').get(lane('library_id'))}]).coerce_to('OBJECT')})};})