我想创建一个接受一系列需求的包装函数.此包装函数将向rethinkDB请求满足所有条件的任何文档.值将是数字,我想要返回任何> =要求值的东西.
API中提供的语法如下:
r.table("name").filter(
r.row("cond1").lt(val1).and(r.row("cond2").gt(val2))
).run(conn, callback);
Run Code Online (Sandbox Code Playgroud)
但这不允许我查询任意数量的条件.
是否有我缺少的功能,或者是解决方案:1.构建一个字符串并评估它 - 或 - 2.将函数传递给RethinkDB服务器并包含我的数组要求?
一个可能更有意义的例子:我有一个怪物卡车数据库.我想让某人说"向我展示功率分数至少为5且速度至少为10"的卡车.这是传递函数失败的尝试:
r.db('test').table('monstertrucks').filter(
function(item){
var fail = 0,
arr = [{attr: "speed", val: 5}, {attr: "power", val: 10}];
for(var i = 0; i < arr.length; i++){
if(item(arr[i].attr).lt(arr[i].val)){fail++}
}
return fail ? false : true;
})
Run Code Online (Sandbox Code Playgroud)