查询一个 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")
使用==
仅适用于某些语言支持运算符覆盖。
在原型制作过程中,我将一堆 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")
使用==
仅适用于某些语言支持运算符覆盖。