... кажется, что все запросы к нескольким коллекциям нужно использовать следующим образом: запросить коллекцию, а затем запросить другой, используя objectid.
Это довольно часто встречается в больших системах RDBMS. если у вас есть один компьютер, заполненный клиентами, а другой компьютер, заполненный заказами, то в конечном итоге вы будете использовать этот же шаблон.
Обе системы используют индексы Btree для поиска соответствующих данных. С точки зрения серверов метод JOIN такой же дорогой, как и метод «сбор запросов A / сбор запросов B».
Честно говоря, большинство крупных систем ставят Memcache перед запросом. Таким образом, вы можете выполнить несколько запросов Memcache, а затем выполнить несколько SQL-запросов.
Я никогда не использовал mongodb, но в нем нет взаимосвязи между таблицами, я чувствую себя некомфортно.
Крупнейшая в мире социальная сеть в настоящее время работает на основе технологии SQL, поэтому, очевидно, это можно сделать. Конечно, IGN написал всю свою социальную структуру на MongoDB.
Так что обе технологии подходят, и у обеих будут свои компромиссы.