0

我正在尝试为我们的产品团队找到一种查询语言,以便他们可以根据集合的复杂查询创建“危险信号”。由于他们不熟悉代码,我尝试查看 JsonIQ 解决方案,但它似乎没有维护,并且找不到 MongoDB 的简单解决方案。

所以他们是一个简单的选择?mongo“阶段”查询可以完成类似以下示例的操作(如果可以,如何?)

itemCount = number of total contributionItems if itemCount>5 foreach item if (number of items with the same party)/itemCount>0.8 save that party as party1 PH1=party1 for each contributionItem if (contributionItem.party != party1) add item to array. PH2=array[item.party]

4

1 回答 1

0

JSONiq 作为一门语言,是活生生的,并且得到维护。该规范不经常更新,因为它是稳定的。语言网站上记录了一些可用的实现,这些实现可能会随着时间的推移而变化(我不确定目前是否有任何具体支持 MongoDB)。

据我了解,您的查询的 JSONiq 版本如下所示:

let $contribution-items := collection("contribution-items")
let $count := count($contribution-items)
where $count gt 5
let $party1 :=
    for $item in $contribution-items
    group by $party := $item.party
    where count($item) gt (0.8 * $count)
    return $party
where exists($party1)
return [ $contribution-items[$$.party ne $party1] ]
于 2017-05-03T15:07:26.493 回答