mongoDB совокупная производительность запроса $graphLookup

Проблема:

Мой совокупный запрос $graphLookup занимает слишком много времени, а именно 5-6 минут, чтобы найти связи первой, второй и третьей степени для людей с высокими связями, таких как «Супермен», см. пункт 2 ниже.

Я использую пример графика веб-сайта mongodb в качестве вдохновения для дизайна моей схемы, мой проще, вы можете просмотреть мои данные, схему и запрос здесь mongoplayground.net

Полезная информация

  1. Как следует из руководства, двунаправленная структура узлов соединяет двух людей друг с другом. Один узел существует от «Супермена» до «Лоис», другой узел существует от «Лоис» до «Супермена».

  2. Общее количество документов в моей коллекции составляет 6791, а количество «суперменов» — 2868.db.getCollection("people").find({from: "superman"}).count() // 2868

  3. Каждый документ в коллекции имеет 3 дополнительных поля, для краткости я продублировал их только один раз в ссылке MongoPlayGround, строки 6–8.

  4. У меня есть отдельные индексы по полям и

  5. У меня есть составной индексtoиfrom

  6. Совокупное использование запросов{readPreference: 'secondaryPreferred', allowDiskUse: true}

  7. Использование кластера mongoDB Atlas 6.0.5 M10

  8. Сборник читают часто, пишут редко

  9. Открыт для изменения дизайна схемы

0 ответов

Другие вопросы по тегам