Optic API的用途與xdmp:sql有一些重疊。是否有關於何時使用Optic與SQL的指導?什麼時候應該使用MarkLogic 9的光學API?
1
A
回答
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)可能是每個團隊或項目的決策,而不是每個查詢的決定。
相關問題
- 1. 什麼時候應該使用學說ORM和什麼時候zend-db-table?
- 2. 什麼時候應該使用AWS,什麼時候不使用
- 3. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 4. 什麼時候應該使用sed,什麼時候應該使用awk
- 5. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
- 6. 什麼時候應該使用PostgreSQL中
- 7. 什麼時候應該使用async/await,什麼時候不用?
- 8. 什麼時候應該使用CATransformLayer?
- 9. 什麼時候應該使用OWIN Katana?
- 10. 什麼時候應該使用$(object),何時應該使用$ object?
- 11. 什麼時候應該使用html5 sessionStorage?
- 12. 什麼時候應該使用Promises?
- 13. 什麼時候應該使用datagrid,何時應該使用datagridview?
- 14. 我什麼時候應該使用javax.swing.SwingUtilities.invokeLater()?
- 15. 什麼時候應該使用FSharpFunc.Adapt?
- 16. 什麼時候應該使用助手?
- 17. 什麼時候應該使用getElementById?
- 18. 什麼時候應該使用Solandra
- 19. 什麼時候應該使用_aligned_malloc()?
- 20. 什麼時候應該使用didFinishLaunchingWithOptions?
- 21. 什麼時候應該使用`use`?
- 22. 什麼時候應該使用退貨?
- 23. 什麼時候應該使用setScriptTimeout?
- 24. 什麼時候應該使用Datomic?
- 25. 什麼時候應該使用$(document).ready?
- 26. 什麼時候應該使用RESTful?
- 27. 什麼時候應該使用$ rootScope?
- 28. 什麼時候應該使用scala.util.DynamicVariable?
- 29. 我什麼時候應該使用UITableViewCellSeparatorStyleSingleLineEtched?
- 30. 什麼時候應該使用getApplicationContext()。getBean?