Я хочу портировать социальную сеть на Mongoid. Объединяющая таблица между друзьями является очень большой. Есть ли какой-либо путь к Mongoid для обработки этой объединяющей таблицы из поля? Я видел несколько решений самокрутки в модели его, но ничто эффективные взгляды. Существует ли способ обработать это? Или действительно ли это - случай, где я не должен использовать Mongoid?
Вы не создаете много-много взаимосвязей и соединяете таблицы с MongoDB. У каждого пользователя будет весь свой граф друзей, хранящийся в фактическом объекте пользователя, вместе со всем остальным, например, с настройками, изображениями (GridFS) и т. Д. Если вам нужно делать особые вещи, требующие реляционной алгебры, просто используйте СУБД, иначе MongoDB будет работать Что ж. Можно выполнять сложные запросы, но вы должны использовать mapreduce.
Многие ко многим следует избегать для масштабируемых приложений. Например, Twitter хранит идентификаторы подписчиков в формате, разделенном запятыми (строка), внутри пользовательского объекта. Использование MongoDB даже лучше, поскольку оно поддерживает массивы.
Помните, что лучше всего NoSQL описывает термин NoJoin ;-)