Я пытался понять встраивание в Mongodb, но не смог найти достаточно хорошую документацию.Связывать не рекомендуется, поскольку записи не являются атомарными в разных документах, а также есть два поиска.Кто-нибудь знает, как решить эту проблему, или вы предложите мне перейти на график dbs, например, neo4j.
Я пытаюсь создать приложение, которое будет нуждаться в отношениях «многие ко многим».Чтобы объяснить, я возьму пример библиотеки.Он может предлагать пользователю книги на основе книг, которые читают его друзья и читают соседи (как единомышленники).
Есть пользователи и книги.Пользователи заимствуют книги и имеют друзей, которые являются другими пользователями
- Для данного пользователя мне нужны все книги, которые он читает, и количество общих друзей для книги
- Для данной книги мне нужновсе люди, которые читают это.Может быть предоставлен пользователю A, это вернет пересечение людей, читающих книгу, и друзей пользователя A. Это взаимная дружба
Users = [
{ name: 'xyz', 'id':'000000', friend_ids:['949583','958694']}
{ name: 'abc', 'id':'000001', friend_ids:['949582','111111']}
]
Books = [
{'book':'da vinci code', 'author': 'dan brown', 'readers'=['949583', '000000']}
{'book':'iCon', 'author': 'Young', 'readers'=['000000', '000001']}
]
Как видно из вышеизложенного, обычно мне нужны два документа, если я беру базу данных mongo, так как я могу выполнить двусторонний поиск.Дублирование (встраивание) документа в другой может привести к дублированию (эти схемы могут хранить гораздо больше информации, чем показано).
Правильно ли я моделирую свои данные?Может ли это быть эффективно сделано в mongodb или я должен посмотреть на график ДБ.