查询一个 table 并且只匹配某个字段匹配 "STRING" 的行

Query a table and only match rows where a field matches "STRING"

在原型制作过程中,我将一堆 Facebook 帖子分批导入到 table 中。在第一批之后,我进行了批量更新,将 "created_date" 列从字符串转换为本机时间戳(使用方便的 r.ISO8601 函数):

r.db('db').table('table').update({'created_date': r.ISO8601(r.row('created_date'))

在第二次传递时,当我尝试重复此更新时,服务器抛出错误,因为并非所有行字段都是 STRING 类型(即之前转换的那些),这就是 ISO861 预计。

我已经尝试过滤 r.row('created_date').typeOf() == "STRING" 但没有找到匹配项。我也找不到任何其他方法将 STRING 类型称为对象而不是文字字符串。

我知道我可以将它们导入并在代码中执行 if/else 逻辑,但我很想知道是否有一个本机查询会过滤掉与特定类型匹配的行。

您必须使用 eq 进行比较:

r.row('created_date').typeOf().eq("STRING")

使用== 仅适用于某些语言支持运算符覆盖。