Контекст
Я использую запрос агрегации Монго для получения списка результатов. В запросе используется большое количество условий, и пользователям часто трудно понять, почему ожидаемый результат не возвращается. Чтобы решить эту проблему, я хочу создать инструмент «почему вы не обнаруживаете поисковый запрос X».
Проблема
В настоящее время я не знаю, как это сделать. определить, какой шаг агрегации привел к удалению результата.
Мысли Я хочу избежать побитового запроса агрегации, поскольку это, очевидно, будет невероятно неэффективным. Один из подходов, который я рассмотрел, может сработать - использовать агрегацию $bucket
для сохранения удаленных результатов в новом поле для каждого шага. В конце агрегации я мог бы затем запросить эти сегменты, чтобы увидеть, какой из них содержит желаемый результат. Затем я мог бы определить, почему был удален результат, основываясь на поле сегмента.
Вопрос
Существует ли эффективный и чистый способ определить, в какой момент конкретный результат былотфильтрованы из запроса агрегации Монго?