В ads — объявления, в sellers — продавцы. Проверенный продавец — verified: true. Поле появилось в 2025 году, у старых аккаунтов его нет. Удалённые аккаунты из sellers пропадают, а объявления остаются.
Модерация вручную смотрит активные объявления в категории «Автомобили», если продавец не проверен: verified: false, поля нет или продавца нет в sellers. Верните ad_id и seller_id по возрастанию ad_id.
В работе: Модерация, антифрод, сверка ссылок между коллекциями после удаления данных.
MongoDB · MongoDB 8.0.20
Коллекции
ads — объявление
| Поле | Тип | Что значит |
|---|---|---|
ad_id | int | id |
seller_id | int | продавец |
category | string | категория |
price_rub | int | цена |
status | string | active / closed |
sellers — продавец
| Поле | Тип | Что значит |
|---|---|---|
seller_id | int | id |
name | string | имя |
verified | bool / нет поля | прошёл проверку |
Пример: документы
ads
[
{
"ad_id": 501,
"status": "active",
"category": "Автомобили",
"price_rub": 1450000,
"seller_id": 11
},
{
"ad_id": 502,
"status": "active",
"category": "Автомобили",
"price_rub": 890000,
"seller_id": 12
},
{
"ad_id": 503,
"status": "active",
"category": "Автомобили",
"price_rub": 2300000,
"seller_id": 13
},
{
"ad_id": 504,
"status": "active",
"category": "Недвижимость",
"price_rub": 7800000,
"seller_id": 12
}
]sellers
[
{
"name": "Автосалон на Ленина",
"verified": true,
"seller_id": 11
},
{
"name": "Игорь",
"verified": false,
"seller_id": 12
}
]
Ожидаемый ответ
[
{
"ad_id": 502,
"seller_id": 12
},
{
"ad_id": 503,
"seller_id": 13
}
]
Как проверяем
Запрос — JSON: имя коллекции и стадии aggregate, как в
db.коллекция.aggregate([...]). Выполняем его в браузере движком агрегаций на 4 наборах документов: пример выше и скрытые — с пропущенными полями, null и пустыми коллекциями. Порядок документов важен, порядок полей внутри документа — нет. $out и $merge запрещены.
{"collection": "ads", "pipeline": [ … ]}
Источник: на данных классифайда: объявления и продавцы. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить часть pipeline. На зачёт не влияет.
Здесь появится результат отправки.