@Astral100498

Как сгруппировать записи в MongoDB?

Добрый день. У меня в коллекции имеется множество записей. Некоторые записи одинаковые, только отличается поле размер.

Пример записей
{
    "_id": {
        "$oid": "5fc3695ae110660e88c402921"
    },
    "ip": "112.0.1.1",
    "port1": "2222",
    "ip": "172.22.122.0",
    "port2": "172.22.122.0",    
    "protocol": "TCP",
    "size": "241",
    "__v": 0
}
{
    "_id": {
        "$oid": "5fc3695ae110660e88c402921"
    },
    "ip": "112.0.1.1",
    "port1": "2222",
    "ip": "172.22.122.0",
    "port2": "172.22.122.0",    
    "protocol": "TCP",
    "size": "55",
    "__v": 0
}


И таких подобных записей сотни. Могу ли я сгруппировать их?Мне надо получить например первые 100 записей. Посчитать количество таких записей у которых совпадает поле IP и IP2 и сложить все размеры файла, а затем удалить одинаковые и оставить только одну запись вот такую?

{
    "_id": {
        "$oid": "5fc3695ae110660e88c402921"
    },
    "ip": "112.0.1.1",
    "port1": "2222",
    "ip": "172.22.122.0",
    "port2": "172.22.122.0",    
    "protocol": "TCP",
    "size": "ВОТ ТУТ СУММА",
"count": "ВОТ ТУТ количество одинаковых записей",
    "__v": 0
}


Я использую moongose и nodejs. Как это реализовать?
  • Вопрос задан
  • 253 просмотра
Пригласить эксперта
Ответы на вопрос 1
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer
Самым лучшим вариантом будет использование агрегаций.

Посмотрите работу команд: $group, $sum, $project, $lookup и $cond.

Думаю, этого джентельменского набора более чем хватит для решения задачи
Удачи)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы