2017-05-08 24 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)可能是每個團隊或項目的決策,而不是每個查詢的決定。

相關問題