rethinkdb-elixir客户端:根据数组中是否存在值进行过滤

时间:2015-12-15 20:33:16

标签: elixir rethinkdb

给出RethinkDB中的示例文档,如下所示

[{id: "1", tags: ["alpha", "bravo", "charlie"]},
{id: "2", tags: ["delta", "echo", "foxtrot"]}]

我知道我可以使用RethinkDB数据资源管理器轻松过滤tags数组:

r.db("mydb").table("mytable").filter(r.row("tags").contains("delta"));

但是,我在尝试使用rethinkdb-elixir客户端时遇到困难。我认为以下内容将检索它:

q = Query.table("mytable")
q = Query.filter(q, %{tags: Query.contains(q, "delta")})

然后我想也许一个函数会像这样工作:

q = Query.filter(q, lambda fn (doc) ->
  # ???
end)

但此时我似乎遇到了死胡同。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

非常感谢rethinkdb-elixir repo提供答案的主要贡献者:

q = Query.filter(q, lambda fn (doc) ->
  doc["tags"] |> contains("delta")
end)