我对RethinkDB (NodeJS)有问题。
我正在尝试使用一个简单的 .filter() 函数,但由于某种未知原因它不想找到结果。目前我的代码如下所示:
常量 someID = 1234; r.table('list').filter({id: someID}).run().then((err, result) =>{ 如果(错误)抛出错误; 控制台.log(结果) })
我知道 ID 为"1234"的结果在那里,因为如果我运行此查询:
常量 someID = 1234; r.table('list').filter({id: 1234}).run().then((err, result) =>{ 如果(错误)抛出错误; 控制台.log(结果) })
它工作得很好。
我所做的唯一更改是直接提供 ID,而不是使其成为变量/常量。
可能是什么问题?
如果您按表的主索引(通常为 id
)进行搜索,那么get
可能是您正在寻找的工具:
const itemId = 1234;
r.table('list').get(itemId)
如果您正在寻找基于辅助密钥的内容,那么getAll
将满足您的目的:
如有必要,请创建密钥:
r.table('list').indexCreate('val')
访问数据:
const itemVal = 'hey' r.table('list').getAll(itemVal, {index: 'val'}) // would return data like: { id: 1234, val: 'hey' }
似乎第一个用例是你正在寻找的,但我认为你可能会发现第二个用例很有帮助。
对于遇到相同问题的任何人,我已经通过更改数据库中的对象来解决它。我已经删除了我的id
字段,因此重新思考生成它自己的键,现在我将其用作我的对象 ID。它工作得很好。