2017-05-08 35 views

回答

2

Optic为MarkLogic引擎的功能提供了一种惯用的,语言集成的接口,它是SQL和SPARQL以及Optic的基础。 (光学不生成SQL或SPARQL。)

MarkLogic惯用操作的例子包括

  • 接合文件
  • 使用MarkLogic内置函数等fn.reverse()
  • 聚集序列
  • 构成超过列的表达式

语言集成方面与SQL Alchemy或JOOQ类似。在SQL中,除了参数化文字之外,程序员必须通过字符串连接工作。除了字符串连接带来的不便之外,开发人员还需要特别注意防止注入攻击。

相比之下,在Optic中,您可以捕获在变量中构建计划的中间阶段,将计划传递到添加操作并返回修改计划的函数等等。

您可以通过链接操作来更自然地工作,这些操作表示您需要按照预期的操作顺序执行的计划(与SQL语法的命令式句子约束相反)。该Jooq铅对这个问题的一个有趣的博客文章:

https://blog.jooq.org/2016/12/09/a-beginners-guide-to-the-true-order-of-sql-operations/

这就是说,如果一个团队在SQL深通,并不需要真正地道的能力,或者看到光纤提供了语言集成的价值,他们应该毫不犹豫地使用SQL。

换句话说,选择使用哪个接口(SQL或Optic)可能是每个团队或项目的决策,而不是每个查询的决定。

相关问题