可以为调试目的打印为 rethinkdb 创建的过滤器吗?

possible to print created filter for rethinkdb for debugging purposes?

我正在尝试使用节点以编程方式创建失败的过滤器。有没有办法在过滤器传递给 RethinkDB 时检查它的输出?这样我就可以尝试调试过滤器了。

背景 我正在尝试编写一个帮助器,给定嵌套对象符号 a.b 与给定值匹配。

例如:我正在尝试创建以下过滤器:

entry("a")("b").match(val)

使用助手:

  function iterateProp(entry, path, val) {
    if (path.length) {
      var propKey = path.shift();
      return iterateProp(entry(propKey), path, val);
    }
    return entry(val);
  }

这样称呼:

    Model.filter(function(entry) {
        var modelKey = "a.b"; //illustrational
        var val ="someValToMatch"; //illustrational
        var filter = iterateProp(entry, modelKey.split("."), val);
        console.log("filter", filter); //HOW TO DISPLAY FILTER AS CONSTRUCTED BY RETHINKDB DRIVER AND SEND TO RETHINKDB?
        return filter;
    })

这应该适用于我的书,但它没有。那么如何显示构建的过滤器以便我进行一些调试?

您可以在查询末尾添加一个 toString()(替换 run())以查看驱动程序将向服务器发送什么。

console.log(r.table("test").filter(...).toString())