2016-01-20 2 views
1

У меня есть таблица rethinkdb, которые имеют 5 рядов, один из ряда является следующее:Как получить данные из Rethinkdb таблицы на основе имени поля вместо значения поля

{ 
"appkey": { 
"YcJ1HR6vjebXNHwOzeC2l2EAvUNw8qyp": { 
"createdBy": { 
"fullName": "DD" , 
"id": "7943d176-4805-461d-841e-3de766a3825d" , 
"primaryName": [email protected], » 
} , 
"creationTime": "2016-01-20T05:57:40.773+00:00" , 
"expiryTime": "2017-01-20T05:57:40.539+00:00" 
} 
} , 
"creationTime": "2016-01-20T05:57:40.773+00:00" , 
"customerId": "U2KRpPbK" , 
"domain": "co.in" , 
"id": "40e536cc-08f1-4a54-8104-13d900abd643" , 
"kind": "admin#option1#option2" , 
"roles": { 
"admin#option1#option2": { 
"create": true , 
"delete": true , 
"modify": true , 
"read": true 
} 
} 
} 
} 

В этом случае, как я могу выборку выше строки, основанной на поле appKey «YcJ1HR6vjebXNHwOzeC2l2EAvUNw8qyp», что является токеном, что я получаю клиентскую форму формы.

Чтобы сделать то же самое, я попытался с помощью следующего запроса:

r.db('admin').table('services') 
     .filter(function (record) { 
       return record('appkey').coerceTo('array') 
       .map(function (record) { 
        return record(1).hasFields(token) 
       }); 
       .distinct() 

     }) 

     .run() 

Но выше запроса возвращается только 1 строка в каждом случае является ли маркер для 4 строки или 2 строки.

Что я делаю неправильно!

ответ

1

Вы можете использовать hasFields непосредственно в фильтре:

r.db('admin').table('services') 
    .filter(function (service) 
     { return service('appkey').hasFields('YcJ1HR6vjebXNHwOzeC2l2EAvUNw8qyp') }) 
4

Я хочу, чтобы расширить ответ Anders Bornholm «s на hasFields потому что hasFields является очень мощным. При применении к последовательности он может действовать как фильтр.

Вы запрос может быть только просто, как:

r.db('admin').table('services') 
    .hasFields({'appkey': {'YcJ1HR6vjebXNHwOzeC2l2EAvUNw8qyp': true}}) 

Используя nested field syntax мы можем писать очень легко мощный запрос, если он содержит много глубоко вниз уровень полей.

Смежные вопросы