1

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

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

例如,请求这个:

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

     ...

]

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

4

1 回答 1

0

我刚刚遇到了 Facebook 的 GraphQL,它似乎可以达到这个目的。

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

Python Graphene库支持 Django。

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

于 2016-03-11T16:14:09.303 回答