Существует специальная обработка для несуществующих полей (default: 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')))
КСТАТИ: обновление для этого ответа. После сообщения об ошибке в документации для RethinkDB выясняется, что это уже упоминалось в руководстве по устранению неполадок: http://www.rethinkdb.com/docs/troubleshooting/#filters-with-or-return-incorrect/unexpected-r