Войти Регистрация
Data base

126. Объявления о машинах от непроверенных продавцов

Средняя

В ads — объявления, в sellers — продавцы. Проверенный продавец — verified: true. Поле появилось в 2025 году, у старых аккаунтов его нет. Удалённые аккаунты из sellers пропадают, а объявления остаются.

Модерация вручную смотрит активные объявления в категории «Автомобили», если продавец не проверен: verified: false, поля нет или продавца нет в sellers. Верните ad_id и seller_id по возрастанию ad_id.

В работе: Модерация, антифрод, сверка ссылок между коллекциями после удаления данных.

MongoDB · MongoDB 8.0.20

Коллекции

ads — объявление

ПолеТипЧто значит
ad_idintid
seller_idintпродавец
categorystringкатегория
price_rubintцена
statusstringactive / closed

sellers — продавец

ПолеТипЧто значит
seller_idintid
namestringимя
verifiedbool / нет поляпрошёл проверку

Пример: документы

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": [ … ]}
$lookupотсутствующее полепустой массив после $lookup$match

Источник: на данных классифайда: объявления и продавцы. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.