Rethinkdb Rql`或`涉及不存在字段时不工作

Rethinkdb Rql`或`涉及不存在字段时不工作,rethinkdb,Rethinkdb,版本:1.15.2 r.db('test') .table('form') .filter(r.row('yyy').eq('aaa').or(r.row('id').eq('aaa'))) .limit(10) 为什么此查询无法匹配id为aaa但没有字段yyy的文档,对不存在的字段有特殊处理(默认值:false),所以我想最好重写查询,不要对缺少的字段调用.eq())。您可以先检查id: .filter(r.row('id').eq('aaa').or(r.row('yyy').eq(

版本:1.15.2

r.db('test')
 .table('form')
 .filter(r.row('yyy').eq('aaa').or(r.row('id').eq('aaa')))
 .limit(10)

为什么此查询无法匹配
id
aaa
但没有字段
yyy
的文档,对不存在的字段有特殊处理(
默认值:false
),所以我想最好重写查询,不要对缺少的字段调用
.eq()
)。您可以先检查
id

.filter(r.row('id').eq('aaa').or(r.row('yyy').eq('aaa')))
或者直接在缺少字段的操作上设置默认行为:

.filter(r.row('yyy').eq('aaa').default(false).or(r.row('id').eq('aaa')))
顺便说一句:这个答案的更新。在为RejectDB报告文档错误之后,在故障排除指南中已经提到了这一点: