Я делаю проект с php и mongodb. Существует требование, когда пользователю нужно показывать ленту, как в любой социальной сети.
Чтобы это произошло, я сохраняю монго-документ для каждого объекта (пользователей, страниц и т. Д.), Который имеет уникальный идентификатор, каждый документ называется узлом, похожим на узел в графе db. Все узлы находятся в коллекции «узлов» в моей базе данных mongo. Отношения хранятся с потоком соединения (направлением) и ссылкой на идентификаторы (на узлы) в коллекции, называемой «rels».
При выполнении запросов я просто собирал коллекции «rels» и загружал соответствующие узлы.
Мой вопрос: как эта модель повлияет на масштабирование? потому что на коллекцию «rels» будет внесено бесчисленное количество документов. вероятно 10000-х годов. Я довольно новичок в масштабировании в монго. Мой подход неверен? Благодарю.
Чтобы вбить гвоздь через стену, вам не нужна кувалда. MongoDB не подходит для подобных сценариев. Ваш вариант использования, где у вас есть узлы, и отношения между ними могут быть лучше всего оправданы с помощью базы данных графов, такой как Neo4J. Аспект масштабирования — это еще одна причина для выбора Neo4J вместо MongoDB, поскольку соединения / отношения могут со временем усложняться по мере роста числа узлов.
Других решений пока нет …