RethinkDB 过滤器找不到结果
RethinkDB filter not finding results
我对 RethinkDB (NodeJS) 有疑问。
我正在尝试使用一个简单的 .filter() 函数,但由于某些未知原因它不想找到结果。目前我的代码如下所示:
const someID = 1234;
r.table('list').filter({id: someID}).运行().then((err, result) =>{
如果(错误)抛出错误;
console.log(结果)
})
我知道 ID 为“1234”的结果在那里,因为如果我 运行 这个查询:
const someID = 1234;
r.table('list').filter({id: 1234}).运行().then((err, result) =>{
如果(错误)抛出错误;
console.log(结果)
})
效果很好。
我所做的唯一更改是直接提供 ID,而不是将其设为 variable/constant。
可能是什么问题?
如果您正在按 table 的主索引进行搜索(通常是 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
字段,因此 Rethink 生成了它自己的密钥,现在我将其用作我的对象 ID。它工作得很好。
我对 RethinkDB (NodeJS) 有疑问。
我正在尝试使用一个简单的 .filter() 函数,但由于某些未知原因它不想找到结果。目前我的代码如下所示:
const someID = 1234; r.table('list').filter({id: someID}).运行().then((err, result) =>{ 如果(错误)抛出错误; console.log(结果) })
我知道 ID 为“1234”的结果在那里,因为如果我 运行 这个查询:
const someID = 1234; r.table('list').filter({id: 1234}).运行().then((err, result) =>{ 如果(错误)抛出错误; console.log(结果) })
效果很好。
我所做的唯一更改是直接提供 ID,而不是将其设为 variable/constant。
可能是什么问题?
如果您正在按 table 的主索引进行搜索(通常是 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
字段,因此 Rethink 生成了它自己的密钥,现在我将其用作我的对象 ID。它工作得很好。