RethinkDB Thinky - строки в течение 1 часа
r.db('dbname').table('urls').filter(function(url) {
return url("expires_at").date().eq(r.now().date())
.and(url("expires_at").hours().eq(r.now().hours().sub(1)))
});
Я пытаюсь написать эквивалентный запрос, используя ORM Thinky для node.js
1 ответ
Решение
Я никогда не работал с Thinky, но, согласно документации, вы должны создать модель и сделать запрос по ней.
1) Создать модель. Я не знаю, какие документы вы храните в Rethink. Но как то так:
var thinky = require('thinky')();
var type = thinky.type;
// Create a model
var Urls = thinky.createModel("urls", {
id: String,
expires_at: Date
// another fields if needed
});
2) Запрос:
Не знаю фактических синтаксисов для фильтра в Thinky, но что-то вроде этого:
Urls.filter(function(url) {
return url("expires_at").date().eq(r.now().date())
.and(url("expires_at").hours().eq(r.now().hours().sub(1)))
}).then(function(result) {
// result is an array of instances of `Urls `
});