重新思考数据库筛选器找不到结果



我对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将满足您的目的:

  1. 如有必要,请创建密钥:

    r.table('list').indexCreate('val')
    
  2. 访问数据:

    const itemVal = 'hey'
    r.table('list').getAll(itemVal, {index: 'val'})
    // would return data like: { id: 1234, val: 'hey' }
    

似乎第一个用例是你正在寻找的,但我认为你可能会发现第二个用例很有帮助。

对于遇到相同问题的任何人,我已经通过更改数据库中的对象来解决它。我已经删除了我的id字段,因此重新思考生成它自己的键,现在我将其用作我的对象 ID。它工作得很好。

最新更新