你如何匹配Thinky ORM中的一个字段?

时间:2016-03-04 14:05:58

标签: node.js rethinkdb thinky

我正在尝试使用 Thinky ORM 检查表中的一个字段是否存在(区分大小写)。如果没有 Thinky ,我只需使用RethinkDB简单过滤匹配操作匹配字段:

//  This makes my variable insensitive.
let myFieldInsensitive = '(?i)^' +myFieldSensitive`enter code here`+'$';
//  Filter by matching myFieldInsensistive.
r.table('myTable').filter(r.row('myField').match(myFieldInsensitive))
 .run(myConnection, function (err, result) {
    console.log(result.length); // returns 1 if myFieldInsesitive was found
})

此代码将检查 myTpecificField 是否确实存在于 myTable (区分大小写)。

现在,我正在尝试使用 Thinky 执行相同的匹配,但此 ORM 不支持此语法:

let myFieldInsensitive = '(?i)^' +myFieldSensitive+'$';
myModel.filter(('myField').match(myFieldInsensitive)})
  .run().then((result) => {
    console.log(result.length); // should return 1 if myFieldInsesitive was found, but this returns always empty array
})

是否有人知道如何使用 Thinky 匹配数据?

1 个答案:

答案 0 :(得分:2)

终于做到了!我已经包含 thinky.r

let r = thinky.r;

而不是写

myModel.filter(('myField').match(myFieldInsensitive))

我写了

myModel.filter(r.row('myField').match(myFieldInsensitive))

<强> VOILA