Я не знаю о Solr, но MongoDB действительно не имеет соединений. Вы можете встраивать связанные данные в родительский объект (вполне естественно, что объект User
встраивает роли пользователя).
Если, однако, из-за этого документа для встраивания может превысить его предел (в настоящее время 16M на документ), у вас нет другого выбора, кроме как сохранить эти связанные данные в отдельных документах (либо в виде отдельных документов, либо сгруппированных в несколько пакетов документов) .
Если вы храните данные отдельно от основного объекта, то, естественно, вам нужно выполнить более одного запроса, чтобы получить все данные. Не уверен, как Solr понравится это.
MongoDB поддерживает частичное обновление документов на месте.