如何过滤掉非数字值

时间:2015-08-28 18:58:16

标签: javascript rethinkdb reql

我有一个表(在RethinkDB数据库中),它有一堆带有字段VIN0的文档。该字段几乎总是按预期存储数字。

我最近有一些数据损坏,其中有一些字符串代替字段VIN0的数字。我用来操作此数据的查询现在返回错误:"e: Expected type NUMBER but found STRING in:"

我想过滤字符串,但我似乎无法找到它们。有没有办法使用像Number.isInteger()之类的东西来过滤RethinkDB中的这些项目?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用typeOf查找字段类型或元素。我们假设您要过滤文档,其中VIN0是一个数字

r.db('db').table('table').filter(r.row('VIN0').typeOf().eq('NUMBER'))

您还可以尝试使用coereTo将字符串转换为数字来解决问题。

r.db('db').table('table')
  .filter(r.row('VIN0').typeOf().eq('STRING'))
  .update({VIN0: r.row('VIN0').coerceTo('NUMBER')}) 

希望这有帮助。