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

262. Сколько товаров в «Обуви» со всеми подкатегориями

Средняя

Neo4j · Neo4j 5.26.20

Дерево категорий маркетплейса хранится в Neo4j: (:Category)-[:PARENT_OF]->(:Category) от родителя к ребёнку, глубина у разных веток разная, от 2 до 6 уровней. Товар привязан к категориям связью (:Product)-[:IN]->(:Category), и одна карточка может стоять сразу в нескольких, например в «Кроссовках» и в «Беговых».

Счётчик рядом с названием раздела должен показывать число разных товаров в «Обуви» и во всех её подкатегориях. Товары, привязанные прямо к «Обуви», тоже считаются. Результат — одна строка с колонкой products.

В работе: Счётчики товаров в навигации каталога.

Как проверяем Движка Neo4j в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
пути переменной длины*0..направлениеcount(DISTINCT)

Источник: наша задача на данных Ozon: дерево категорий каталога. Условие пересказано своими словами.

Какой запрос даст правильный счётчик для «Обуви»?

  • PARENT_OF*0.. вниз от «Обуви» и count(DISTINCT p)
  • PARENT_OF*1.. вниз и count(DISTINCT p)
  • PARENT_OF*0.. вниз и count(p)
  • PARENT_OF*0..1 и count(DISTINCT p)
  • PARENT_OF*0.. без направления и count(DISTINCT p)