不在查询中:Marklogic

不在查询中:Marklogic,marklogic,Marklogic,我想知道如何执行而不是在操作中使用marklogic,它们是我们对rdbms执行的方式 select * from Employee where id not in (1,2,3,4,5,6) 我尝试了cts:not in query但它采用了单个正查询和负查询的单个实例,如何传递多个值,如notin in(1,2,3,4,5,6)如果您在id上有一个范围索引(假设它是一个元素),您可以执行以下操作: cts:element-range-query(xs:QName('id'), '!=',

我想知道如何执行
而不是在
操作中使用marklogic,它们是我们对rdbms执行的方式

select * from Employee where id not in (1,2,3,4,5,6)

我尝试了
cts:not in query
但它采用了单个正查询和负查询的单个实例,如何传递多个值,如notin in(1,2,3,4,5,6)

如果您在
id
上有一个范围索引(假设它是一个元素),您可以执行以下操作:

cts:element-range-query(xs:QName('id'), '!=', (1,2,3,4,5,6))
否则,您可以尝试:

cts:not-query(cts:element-value-query(xs:QName('id'), (1,2,3,4,5,6)))

如果您在
id
上有一个范围索引(假设它是一个元素),您可以执行以下操作:

cts:element-range-query(xs:QName('id'), '!=', (1,2,3,4,5,6))
否则,您可以尝试:

cts:not-query(cts:element-value-query(xs:QName('id'), (1,2,3,4,5,6)))

我一直使用后一种查询@grtjn的想法是正确的。因为第二个参数可以是一个序列,所以可以传入的数据量是无限的,从技术上讲不是完全无限的,但是如果需要,可以将其扩展到一百万个条目之外..我一直使用后一种查询@grtjn的想法是正确的。由于第二个参数可以是一个序列,因此可以传入的数据量是无限的,从技术上讲并非完全无限的,但如果需要,可以将其扩展到一百万个条目之外。。