如何查找在数组中等于任何值的字段值

时间:2017-01-30 19:16:27

标签: go rethinkdb

我有一个包含一些ID的数组:

["4007fa1c-4e27-4d2e-9429-f3631171760c",
"a21649a3-1a64-45cf-b92a-e899a7ef4742",
"1903a571-b166-4f93-9c1c-93dc66067a49", 
"2845d278-5ec4-45e9-ab9c-999178332c73",
"4e3ed481-a3d9-4689-8873-5c912668b26f",
"390e89fd-d680-4264-8806-8295b361d2f1"]

我要感谢这个数组,找到所有帖子中有“OriginID”,这是表格中的一个ID。

我已经开始这样的事了,但我不知道如何完成这段代码的工作。

curs, _ =   r.Table("posts").
            Filter(r.Row.Field("Validated").Eq(false)).
Filter(func(customer r.Term) interface{}{
    for _, id := range listOriginID {
        //I don't know how to finish
    }
})

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

当您发现自己试图在ReQL查询中迭代数组时,使用内置的ReQL操作(例如MapConcatMap)通常更容易或更必要。

在这种情况下,Contains似乎是您想要的操作。尝试类似:

(...).Filter(func(post r.Term) interface{}{
    r.Expr(listOriginID).Contains(post.Field("OriginID"))
})