首页 > 解决方案 > 如何根据列表的附件过滤表

问题描述

我正在尝试过滤一个表,谓词是代码中列表的附件。这可以通过代码完成并且不需要将列表添加到RethinkDB表格中吗?

var list=new List<int>{1,2,3};
var filter=r.Db("someDb").Table("SomeTable").Filter(x=>list.Contains(x("field")));

如您所见,我有列表,c#但我不能以某种方式将其作为语法中的谓词。Reql无论如何要这样做吗?

或者我可以以某种方式使用for类似的 var basicExpression 创建一个表达式吗?

foreach(var item in list)
{
  basicExpression.Or(x("something").Eq(item));
}

最后做出一个大大的表情?

标签: .netfilterrethinkdbreql

解决方案


在 javascript 驱动程序中,它应该是这样的:

r.db("someDb").table('SomeTable').filter(function (x) {
    return r.expr(['1', '2', '3']).contains(x('field'))
})

但是,在 .net 驱动程序中我不确定,也许:

var filter = r.Db("someDb").Table("SomeTable")
        .Filter(x => R.Expr(new[]{'1','2','3'}).Contains(x("field")));

推荐阅读