如何根据设备筛选列表到表

时间:2019-06-19 19:50:10

标签: .net filter rethinkdb reql

我正在尝试过滤一个表,该谓词是代码中列表的必要条件。 可以通过代码完成此操作,而无需将列表添加到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));
}

最后做出一个大的表达吗?

1 个答案:

答案 0 :(得分:1)

在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")));