Получить пути из структуры ориентированного графа, используя MongoDB - PullRequest
0 голосов
/ 29 января 2019

Фон

У меня есть база данных mongodb с документами, содержащими заголовок и список заголовков других документов, с которыми он связан.Этот список других заголовков содержит заголовки, которые еще не существуют в базе данных.Чтобы получить какую-то рекомендацию и найти равенство, мне нужно знать, насколько «далеки» два документа друг от друга и, в особенности, как я могу перейти от одного документа к другому.

В идеале я хотел бы найти решениедля которого мне не нужно знать всю базу данных в моей программе, что сделало бы эту проблему тривиальной.

image

Что я пробовал

Я пытался использовать $graphLookup в агрегации, но я чувствую, что он не сможет предоставить мне универсальное решение для этого.Используя $ graphLookup, я смог получить «заполненный» элемент A и все связанные с ним элементы (B, D), но результат был очень грубым и выглядел очень грубо.

Ожидаемый результат

Я хотел бы знать все возможные пути (возможно, с максимальной глубиной) от одного элемента к другому.

На основе изображения выше, для запроса "A -> B" Я бы хотелчтобы получить список "A, D, B" и "A, B".

Для "A -> G" Я хотел бы получить "A, B, F, G", "A, B, G" и "A, D, B, G".

К сожалению, яУ меня много элементов (тысячи).Есть ли какой-нибудь умный запрос, который я могу использовать, чтобы получить точный результат, используя только запрос?Или, по крайней мере, какой-нибудь умный запрос фильтра, чтобы получить только подмножество всех соответствующих документов, которые я могу затем объединить с теорией графов в python или node.js?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...