How do I fix the Jsoniq static error: invalid expression: syntax error, unexpected "every"?
How do I fix the Jsoniq static error: invalid expression: syntax error, unexpected "every"?
我正在执行此查询以查看此假数据库中是否有可用的多媒体软件包
let $swpackages := [
{"name": "flimber", "version": 1.8, "category": "admin"},
{"name": "quack", "version": 5.4, "category": "admin"},
{"name": "xyz", "version": 3.118, "category": "admin"},
{"name": "grop", "version": 11, "category": "editor"},
{"name": "snarl", "version": 3.0, "category": "editor"},
{"name": "rope", "version": 1.45, "category": "devel"},
{"name": "crunch", "version": 11.53, "category": "devel"},
{"name": "quickdelete", "version": 4.8, "category": "util"},
{"name": "readmind", "version": 2.34, "category": "util"},
{"name": "slurp", "version": 12.5, "category": "multimetia"},
{"name": "yaf", "version": 1.1, "category": "multimedia"},
{"name": "noodle", "version": 11, "category": "multimedia"}
]
我将此信息保存在另一个名为 packages.sq 的文件中。我正在执行以下查询:
jsoniq version "1.0";
let $packages := { (: packages.jq :) }
every $sw in $packages.swpackages[] satisfies
(some $package in $packages.swpackages.category[]
satisfies $cat eq "multimedia")
似乎没有很多关于 jsoniq 的资源,我是这种查询语言的菜鸟。非常感谢有关如何解决我的错误的任何提示。谢谢!
有两个问题:
- let 子句必须始终与匹配的 return 子句一起使用(这些是 FLWOR 表达式)。一般来说,子句几乎可以按任何顺序排列,但总是以 return 子句结尾。
- 嵌套变量不一致,应改为
some $cat
)
这会导致以下查询,它应该解析(它在 RumbleDB sandbox 上解析)。
let $packages := { (: packages.jq :) }
return every $sw in $packages.swpackages[]
satisfies (some $cat in $packages.swpackages.category[]
satisfies $cat eq "multimedia")
我正在执行此查询以查看此假数据库中是否有可用的多媒体软件包
let $swpackages := [
{"name": "flimber", "version": 1.8, "category": "admin"},
{"name": "quack", "version": 5.4, "category": "admin"},
{"name": "xyz", "version": 3.118, "category": "admin"},
{"name": "grop", "version": 11, "category": "editor"},
{"name": "snarl", "version": 3.0, "category": "editor"},
{"name": "rope", "version": 1.45, "category": "devel"},
{"name": "crunch", "version": 11.53, "category": "devel"},
{"name": "quickdelete", "version": 4.8, "category": "util"},
{"name": "readmind", "version": 2.34, "category": "util"},
{"name": "slurp", "version": 12.5, "category": "multimetia"},
{"name": "yaf", "version": 1.1, "category": "multimedia"},
{"name": "noodle", "version": 11, "category": "multimedia"}
]
我将此信息保存在另一个名为 packages.sq 的文件中。我正在执行以下查询:
jsoniq version "1.0";
let $packages := { (: packages.jq :) }
every $sw in $packages.swpackages[] satisfies
(some $package in $packages.swpackages.category[]
satisfies $cat eq "multimedia")
似乎没有很多关于 jsoniq 的资源,我是这种查询语言的菜鸟。非常感谢有关如何解决我的错误的任何提示。谢谢!
有两个问题:
- let 子句必须始终与匹配的 return 子句一起使用(这些是 FLWOR 表达式)。一般来说,子句几乎可以按任何顺序排列,但总是以 return 子句结尾。
- 嵌套变量不一致,应改为
some $cat
)
这会导致以下查询,它应该解析(它在 RumbleDB sandbox 上解析)。
let $packages := { (: packages.jq :) }
return every $sw in $packages.swpackages[]
satisfies (some $cat in $packages.swpackages.category[]
satisfies $cat eq "multimedia")