声明式数据结构查询语言

declarative data structure query language

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

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

例如,请求这个:

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

会 return 结果列表如下:

[
    {: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}}

     ...

]

Datalog 类型的查询甚至 MongoDB 查询也有类似的感觉,但这种类型的查询是否有名称或符合某种设计模式我可以更好地在互联网上搜索?

我刚刚发现 Facebook 的 GraphQL 似乎可以达到这个目的。

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

并且 Python Graphene 库支持 Django。

有一个带有指向各种实现的链接的 repo:https://github.com/chentsulin/awesome-graphql