尝试动态构建时组查询错误

时间:2019-04-16 19:10:41

标签: dynamic group-by elixir ecto

我正在尝试使用查询生成器,并且示例/内容只是虚构的。

query = from en in Data.InfectionRevision
query = from q in query, select: map(q, [:is_complete, :is_active])

query = from(q in query,select_merge: %{"$aggregate": %{"$max": %{^"revision_id" => max(q.revision_id)}}})
query = from(q in query,group_by: q.encounter_id,
 select_merge: %{"$group" => %{^"encounter_id" => q.encounter_id}})

但是,尽管我在构建查询时传递了正确的密钥,但是我得到的查询的组密钥不正确。这就是我得到的

#Ecto.Query<from i0 in Data.InfectionRevision, group_by: [i0.encounter_id],
 select: merge(merge(
   map(i0, [:is_complete, :is_active]), 
   %{"$aggregate": %{"$max": %{^"revision_id" => max(i0.revision_id)}}}), 
   %{"$group" => %{^"revision_id" => i0.encounter_id}})>

%{"$group" => %{^"revision_id" => i0.encounter_id}}实际上应该是%{"$group" => %{^"encounter_id" => i0.encounter_id}} 我正在构建的查询的哪个步骤或部分错误?如何解决?

注意:

  • sample project ,您可以在其上运行/构建上述查询
  • 请忽略查询内容,因为它只是一个示例,应该作为动态查询生成器的一部分动态运行,这可能没有意义
  • 我需要根据传递的参数逐步构建查询

0 个答案:

没有答案