Комплексный этап MongoDB с разными результатами
Я пытаюсь найти язык запросов для нашей команды разработчиков, чтобы они могли создавать "красные флажки" на основе сложных запросов коллекции. так как они не знакомы с кодом, я попытался посмотреть на решение JsonIQ, но кажется, что оно не поддерживается и не может найти простое решение для MongoDB.
Так они простая альтернатива? Может ли запрос "этапы" монго выполнить что-то вроде следующего примера (если да, то как?)
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]
1 ответ
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] ]