Как найти в mongodb по ключ: значение, совпадений которых больше 3-х документов в коллекции?

Для поиска в MongoDB по ключу: значение, совпадений которых больше 3-х документов в коллекции, мы можем использовать агрегационный фреймворк.

Агрегационный фреймворк в MongoDB предоставляет мощные инструменты для анализа и обработки данных в коллекции.

Вначале, мы можем использовать стадию $group для группировки документов по ключу: значение. Затем, мы можем использовать стадию $match для фильтрации только тех групп, у которых количество совпадений больше 3-х. Наконец, мы можем использовать стадию $project для определения полей, которые мы хотим вернуть в результирующем наборе.

Пример запроса для поиска по ключу 'field' и значению 'value', совпадений которых больше 3-х документов:

db.collection.aggregate([
  { $match: { field: 'value' } },
  { $group: { _id: '$field', count: { $sum: 1 } } },
  { $match: { count: { $gt: 3 } } },
  { $project: { _id: 0, field: '$_id', count: 1 } }
])

В этом примере мы используем оператор $match для фильтрации документов, где поле 'field' равно 'value'. Затем мы используем оператор $group, чтобы сгруппировать документы по полю 'field' и сосчитать количество документов в каждой группе. Затем мы снова используем оператор $match, чтобы отфильтровать только группы, у которых количество документов больше 3-х. И наконец, мы используем оператор $project для определения полей, которые мы хотим вывести в результате, в данном случае поле 'field' и счетчик 'count'.

В результате выполнения этого запроса, вы получите набор документов, в которых значения поля 'field' равны 'value', а количество совпадений больше 3-х.