在RethinkDB中对深层嵌套字段建立索引

时间:2015-06-21 07:54:48

标签: rethinkdb

给出如下的架构:

[
  {
    "id": 1,
    "name": "Darth",
    "mylists": [
      {
        "name": "bucket list",
        "items": [
          {
            "name": "play the harmonica",
            "done": false
          }
        ]
      },
      {
        "name": "shopping list",
        "items": [
          {
            "name": "oil",
            "done": false
          }
        ]
      }
    ]
  },
  {
    "id": 2,
    "name": "Luke",
    "mylists": [
      {
        "name": "bucket list",
        "items": [
          {
            "name": "play the drums",
            "done": false
          }
        ]
      },
      {
        "name": "shopping list",
        "items": [
          {
            "name": "milk",
            "done": false
          }
        ]
      }
    ]
  }
]

如何在项目中的名称上创建索引。以为它会是:

.indexCreate('myItems', r.row('mylists')('items')('name'), {multi: true});

也试过多次尝试:

.indexCreate('myItems', r.row('mylists')('items')('name'));

但似乎都没有返回结果?

如果我保持浅薄并尝试以下方法,它会按预期工作:

.indexCreate('myIndex', r.row('mylists')('name'), {multi: true});

1 个答案:

答案 0 :(得分:0)

结束了以下内容:

.indexCreate('myItems', r.row('mylists')('items').concatMap(function (x) {return x})('name'), {multi:true});