【问题标题】:Testing attribute against list in datomic datalog根据数据记录中的列表测试属性
【发布时间】:2016-02-06 11:44:34
【问题描述】:

如果属性在特定集合(或列表)中,我想在数据日志中的 where 子句中进行测试。例如,我想测试 :tag-type/code 是否在 ["urgent" "todo"] 中。我可以这样做:

   (or
       [?tag-type :tag-type/code "urgent"]
       [?tag-type :tag-type/code "todo"]
        )

但我想将列表作为参数。说?tag-names 所以,我想在这行做点什么:

       [?tag-type :tag-type/code *in* [?tag-names])]

这可能吗?

【问题讨论】:

    标签: datomic datalog


    【解决方案1】:

    朋友 - 没有 SO 帐户! - 帮助了我。 您可以像这样在 :in 子句中指定一个集合:

    [?collection-name  ...]
    

    屈服:

    (d/q '[:find (pull ?tag-type "[*]")
           :in $ [?tag-names ...] 
           :where 
           [?tag-type :tag-type/code ?tag-names]] 
            the-db ["urgent" "todo"])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      相关资源
      最近更新 更多