В products лежат карточки товаров. Старый импорт из CSV не создавал поле brand, если колонка была пустой. В новом интерфейсе продавец явно выбирает «Без бренда», и тогда в документе brand: null.
Контент-команде нужны только карточки старого импорта — те, где поля brand нет вообще. Верните sku и title, по возрастанию sku.
В работе: Миграции схемы, чистка данных после импорта, поиск документов старой версии.
MongoDB · MongoDB 8.0.20
Коллекции
products — одна карточка — один документ
| Поле | Тип | Что значит |
|---|---|---|
sku | int | артикул |
title | string | название |
brand | string / null / нет поля | бренд |
price_rub | int | цена |
Пример: документы
products
[
{
"sku": 1001,
"brand": "Redmond",
"title": "Чайник Redmond 1,7 л",
"price_rub": 2490
},
{
"sku": 1002,
"title": "Кабель USB-C 1 м",
"price_rub": 290
},
{
"sku": 1003,
"brand": null,
"title": "Носки хлопок, 5 пар",
"price_rub": 590
},
{
"sku": 1004,
"title": "Пакеты для заморозки 3 л",
"price_rub": 149
}
]
Ожидаемый ответ
[
{
"sku": 1002,
"title": "Кабель USB-C 1 м"
},
{
"sku": 1004,
"title": "Пакеты для заморозки 3 л"
}
]
Как проверяем
Запрос — JSON: имя коллекции и стадии aggregate, как в
db.коллекция.aggregate([...]). Выполняем его в браузере движком агрегаций на 5 наборах документов: пример выше и скрытые — с пропущенными полями, null и пустыми коллекциями. Порядок документов важен, порядок полей внутри документа — нет. $out и $merge запрещены.
{"collection": "products", "pipeline": [ … ]}
Источник: на данных маркетплейса: карточки товаров. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить часть pipeline. На зачёт не влияет.
Здесь появится результат отправки.