通过使用Node.js和Rethink的RethinkdbDash包,我可以使用这个ReQL
r.db('<DATABASE>').table('<TABLE>').get('<UUID_FOR_OBJECT>')...to使用以下格式从数据库中获取所需的对象...
{
"address": "<ADDRESS>" ,
"createdAt": Thu Sep 15 2016 02:08:54 GMT+00:00 ,
"email": <EMAIL>,
"firstName": "<FIRST NAME>" ,
"fullName": "<FULL NAME>" ,
"lastName": "<LAST NAME>" ,
"middleName": "<MIDDLE NAME>" ,
"phone": "<PHONE NUMBER>" ,
"prescriptions": [
{
"expiresOn": Thu Sep 15 2016 00:00:00 GMT+00:00 ,
"hasExpired": false ,
"name": "<MEDICATION NAME>" ,
"prescribedBy": "<DOCTOR NAME>" ,
"prescribedOn": Thu Sep 15 2016 02:54:52 GMT+00:00 ,
"startOn": Thu Sep 15 2016 02:54:52 GMT+00:00 ,
"uuid": "f11fed84-30dc-4cf9-af36-b715f303bed1"
}
] ,
"uuid": "bd4d6d44-3af3-4224-afef-d7e9a876025b"
}当我试图将pluck或getField函数添加到查询中以隔离和检索'prescriptions'数组时,问题就出现了。这是我的控制器中用于调用的函数...
export function all(req, res) {
let id = req.params.id
r.table('Patients').get(id).pluck('prescriptions').run() //Also tried .getField('prescriptions') and .get(id)('prescriptions')
.then((results) => {
console.log(results)
return res.json({ status: 200, data: results })
})
.catch((error) => {
console.log(error)
return res.json({ status: 400, message: 'There was an error finding the medication of patient ' + id, data: error })
})
}当我调用访问此数据的API path并执行all函数时,我得到了以下响应...
{
status: 200,
data: []
}但是,在Rethink管理控制台的数据资源管理器中,完全相同的查询也可以正常工作。
任何关于为什么会发生这种情况的想法或帮助都是非常感谢的!
发布于 2016-09-16 03:12:06
问题解决了。
问题实际上是我用Express指定的路由,而与rethinkdb无关!
https://stackoverflow.com/questions/39513844
复制相似问题