Как вы можете сопоставить поле в Thinky ORM?
Я пытаюсь проверить, существует ли одно поле из таблицы (с учетом регистра) с помощью 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
})
Этот код проверит, существует ли mySpecificField еще в 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 ответ
Решение
Наконец то сделал это! Я включил thinky.r:
let r = thinky.r;
Вместо того чтобы писать
myModel.filter(('myField').match(myFieldInsensitive))
я написал
myModel.filter(r.row('myField').match(myFieldInsensitive))
ВОЙЛА!