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. 什么时候应该使用PostgreSQL中
- 5. 什么时候应该使用$(object),何时应该使用$ object?
- 6. 什么时候应该使用html5 sessionStorage?
- 7. 什么时候应该使用datagrid,何时应该使用datagridview?
- 8. 我什么时候应该使用javax.swing.SwingUtilities.invokeLater()?
- 9. 什么时候应该使用getElementById?
- 10. 什么时候应该使用FSharpFunc.Adapt?
- 11. 什么时候应该使用Solandra
- 12. 什么时候应该使用_aligned_malloc()?
- 13. 什么时候应该使用didFinishLaunchingWithOptions?
- 14. 什么时候应该使用`use`?
- 15. 什么时候应该使用RESTful?
- 16. 什么时候应该使用$(document).ready?
- 17. 什么时候应该使用scala.util.DynamicVariable?
- 18. 我什么时候应该使用UITableViewCellSeparatorStyleSingleLineEtched?
- 19. 什么时候应该使用getApplicationContext()。getBean?
- 20. 什么时候应该使用模板
- 21. 什么时候应该使用流?
- 22. 什么时候应该使用const?
- 23. 什么时候应该使用git add?
- 24. 什么时候应该使用@android:id /?
- 25. 什么时候应该使用@property?
- 26. 什么时候应该使用GC.SuppressFinalize()?
- 27. 什么时候应该使用可可?
- 28. 什么时候应该使用*,&,。 , - >?
- 29. 什么时候应该在Drupal 7中使用Webform vs Fields API?
- 30. EGL_KHR_IMAGE < - 它是什么,什么时候应该使用它