У меня есть таблица rethinkdb с 5 строками, одна из которых следующая:
{
"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 строки.
Что я делаю не так!