Search code examples
rethinkdbthinky

RethinkDB Thinky - rows within 1 hour


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)))
});

I am trying to write the equivalent query using thinky ORM for node.js


Solution

  • I've never worked with Thinky, but according to docs, you should create model and make query on it.

    1) Create model. I don't know what documents you are storing in Rethink. But something like this:

    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) Query:

    Don't know actual syntaxes for filter in Thinky, but somehting like this:

    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 `
    });