声明性数据结构查询语言

时间:2016-02-19 12:28:55

标签: mongodb language-agnostic datalog database

我很难描述一种我认为必须存在且有名字的查询语言。

简单地说,您将要接收的数据描述为值路径和任何转换,约束等的数据结构。

例如,请求:

{:query {:title
         :content
         :fullname (join [:author.firstname :author.lastname] " ")
         :meta {:date-created
                :date-updated
                :date-published}}
 :limit 10
 :order-by :title}

将返回结果列表,如:

[
    {:title "dummy title 1" 
     :content "lorem ipsum" 
     :author "Jane Doe"
     :meta {:date-created 2016-01-01
            :date-updated 2016-01-02
            :date-published 2016-01-02}}

    {:title "dummy title 2" 
     :content "ipsum lorem" 
     :author "John Doe"
     :meta {:date-created 2016-01-01
            :date-updated 2016-01-02
            :date-published 2016-01-02}}

     ...

]

数据记录类型查询甚至MongoDB查询都有类似的感觉,但这种类型的查询是否有名称或适合某些设计模式我可以更好地搜索互联网?

1 个答案:

答案 0 :(得分:0)

我刚刚遇到Facebook的GraphQL似乎就是为了这个目的。

https://code.facebook.com/posts/1691455094417024/graphql-a-data-query-language/

Python Graphene库有Django支持。

有一个包含各种实现链接的仓库:https://github.com/chentsulin/awesome-graphql