2015-06-21 5 views
0

Учитывая схему, как:Индексация глубоко вложенных полей в 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}); 

ответ

0

закончился следующий:

.indexCreate('myItems', r.row('mylists')('items').concatMap(function (x) {return x})('name'), {multi:true}); 
Смежные вопросы