如何在MarkLogicJavaScript中实现SQL查询?

如何在MarkLogicJavaScript中实现SQL查询?,marklogic,marklogic-8,marklogic-9,Marklogic,Marklogic 8,Marklogic 9,我有一个SQL查询,我想在MarkLogic的Javascript查询类型中实现它。目标是返回查询结果的所有uri 下面是我要转换的SQL查询: SELECT * FROM DOCUMENT_TABLE WHERE WADCTO IN ('WM', 'WO') AND (WASRST NOT IN ('02', 'M', 'M9')) AND (WASTRX = 0) 这是我在查询控制台中测试的当前Javascript查询,但返回的行数与SQL查询不同: SELECT * FROM DOCUM

我有一个
SQL
查询,我想在MarkLogic的
Javascript
查询类型中实现它。目标是返回查询结果的所有
uri

下面是我要转换的SQL查询:

SELECT * FROM DOCUMENT_TABLE
WHERE WADCTO IN ('WM', 'WO')
AND (WASRST NOT IN ('02', 'M', 'M9')) AND (WASTRX = 0)
这是我在查询控制台中测试的当前Javascript查询,但返回的行数与SQL查询不同:

SELECT * FROM DOCUMENT_TABLE
WHERE WADCTO IN ('WM', 'WO')
AND (WASRST NOT IN ('02', 'M', 'M9')) AND (WASTRX = 0)
cts.uris(null,null,
cts.andQuery([
cts.collectionQuery(“JDEdwards”),
cts.collectionQuery(“工作订单文档”),
cts.andQuery([
cts.orQuery([
cts.elementRangeQuery(fn.QName(“http://www.example.com/ads/JDEdwards/document“,“WADCTO”),“=”,“WO”),
cts.elementRangeQuery(fn.QName(“http://www.example.com/ads/JDEdwards/document“,“WADCTO”),“=”,“WM”)
]),
cts.andQuery([
cts.elementRangeQuery(fn.QName(“http://www.example.com/ads/JDEdwards/document“,“WASRST”),“!=”,“02”),
cts.elementRangeQuery(fn.QName(“http://www.example.com/ads/JDEdwards/document“,“WASRST”),“!=”,“M”),
cts.elementRangeQuery(fn.QName(“http://www.example.com/ads/JDEdwards/document“,”WASRST“,“!=”,“09”)
]),
cts.elementRangeQuery(fn.QName(“http://www.example.com/ads/JDEdwards/document“,“WASTRX”),“=”,“0”)
])
])

);范围查询可以指定值或相关值列表。另外,
cts.notQuery()
可以否定查询。可能与下面的草图类似的东西会更接近

cts.uris(null, null, 
  cts.andQuery([
    cts.collectionQuery("JDEdwards"),
    cts.collectionQuery("WorkOrder_Document"),
    cts.elementRangeQuery(fn.QName("...", "WADCTO"),"=", ["WO", "WM"]),
    cts.notQuery(
      cts.elementRangeQuery(fn.QName("...", "WASRST"),"=", ["02", "M", "09"])
      ),
    cts.elementRangeQuery(fn.QName("...", "WASTRX"),"=", "0")
    ]);
要检查的内容包括

  • 目标文档是否在两个集合中
  • 元素的名称空间是否正确
  • 范围索引是否具有字符串数据类型(WASTRX是SQL查询版本中的一个数字)
如果所有其他操作都失败,请尝试删除查询子句,直到查询找到有问题的查询子句为止

希望有帮助