我有一个查询,它动态确定一个集合名称和一个表达式来评估该集合,返回一个布尔值。说:
$my-collection
指向集合,例如包含字符串/db/my/collection
。- 布尔表达式是
exists(/foo/bar)
。
我可以exists(/foo/bar)
在集合本身上运行,这将返回 true 或 false,具体取决于集合中的文档是否包含/foo/bar
. 但是,如果事先不知道集合名称,我该怎么做呢?
天真地,我试过了collection($my-collection)/exists(/foo/bar)
。但是由于collection()
返回集合中的文档节点,这将返回与集合中的文档一样多的布尔值,而不是只返回一个布尔值。这不是我想要的,而且它可能非常慢,因为我的集合可能包含数万个文档。
那么,我应该怎么写呢?