0

だから私は動的クエリを持っており、トレース目的で正確に実行されているステートメントをトレースする方法があるのだろうか?

r.db('appname').table('food')
    .hasFields({'fruits': {'secondary': true}})
    .filter(function(row) {
        var userDefaultCondition = [];
        _.forEach(params.userDefault, function(service) {
            userDefaultCondition.push(row('fruits')('favorite').match(service));
        });

        var userRequestedCondition = [];
        _.forEach(params.userRequested, function(service) {
            userRequestedCondition.push(row('fruits')('favorite').match(service));
        });

        return r.and(
              row('inventory')('status').match('AVAILABLE')
          ).and(
            r.or(
                userDefaultCondition
            ).and(
              r.or(
                userRequestedCondition
              )
            )
          )
    })
4

1 に答える 1

0

クエリをトレースするには、それを変数に割り当てて適用する必要があることがわかりましたtoString()

var query = r.db('appname').table('food')
.hasFields({'fruits': {'secondary': true}})
.filter(function(row) {
    var userDefaultCondition = [];
    _.forEach(params.userDefault, function(service) {
        userDefaultCondition.push(row('fruits')('favorite').match(service));
    });

    var userRequestedCondition = [];
    _.forEach(params.userRequested, function(service) {
        userRequestedCondition.push(row('fruits')('favorite').match(service));
    });

    return r.and(
          row('inventory')('status').match('AVAILABLE')
      ).and(
        r.or(
            userDefaultCondition
        ).and(
          r.or(
            userRequestedCondition
          )
        )
      )
});

//trace query
console.log(query.toString());

//run query
query.run()
.then(function(res) {
    console.log(res);
}).error(function(err){
    console.log(err);
});

おかげで: http://www.ronniesan.com/viewing-a-dynamically-generated-reql-query/

PSこのクエリは、動的なrethinkdbクエリを実行する方法をまだ考えているため、まだ期待どおりに機能していません

于 2016-09-15T07:54:09.203 に答える