如何使用“!”在 XQuery 中用于复杂的 "for" 语句?

How to use the "!" in for complex "for" statements in XQuery?

我知道如何使用新的“!”在像这样的简单 for 循环中:

$t2/Course ! map {./SubjectId : .}

但是你如何使用这个新的“!”对于包含 "lets" 和 "groups" 的语句更复杂,如下所示:

for $e2 in $t2/Course 
let $foreignId := $e2/SubjectId 
group by $foreignId 
return map {$foreignId : $e2}

谢谢!

你的第一个例子是错误的。 bang 运算符是一个简单的中缀运算符,所以

for $t2/Course ! map {./SubjectId : .}

应该是

$t2/Course ! map {./SubjectId : .}

(当然“./”是多余的,但有些人还是喜欢用它。)

"How do you use this new "!" 在更复杂的 for 语句中"。也许你不知道。你想达到什么目的? bang 运算符可以替换简单的 "for" 表达式,它有时可以替换“/”,但它并不是设计来替换所有内容的。