我的RethinkDB(NodeJS)有问题。
我正在尝试使用一个简单的.filter()函数,但由于某些未知原因,它不想找到结果。目前,我的代码如下:
const someID = 1234; r.table('list').filter({id: someID}).run().then((err, result) =>{ if(err) throw err; console.log(result) })
我知道ID为'1234'的结果在那里,因为如果我运行以下查询:
const someID = 1234; r.table('list').filter({id: 1234}).run().then((err, result) =>{ if(err) throw err; console.log(result) })
它很好用。
我所做的唯一更改是直接给了ID,而不是使它成为变量/常量。
可能是什么问题?
答案 0 :(得分:0)
如果您要按表的主索引(通常是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' }
您似乎正在寻找第一个用例,但我认为您可能会发现第二个用例。
答案 1 :(得分:0)
对于任何有相同问题的人,我已经通过更改数据库中的对象来解决。我已经删除了id
字段,因此Rethink生成了它自己的密钥,现在我将其用作对象ID。效果很好。