Лучший способ сохранить / получить значения из списка в Mongo / RectiveMongo?

У меня довольно распространенный вариант использования - список комментариев. Каждый комментарий имеет автора.

Сохранение ссылки из комментария к автору с использованием ссылки, поскольку автор может сделать несколько комментариев.

Сейчас я'Я работаю с ReactiveMongo и хочу сохранить асинхронный доступ к базе данных, но в этом случае я нене знаю как. Я делаю асинхронный доступ к базе данных, чтобы получить комментарии, но затем для каждого комментария я должен получить автора, и до сих пор единственный способ, который я знаю, - это циклически проходить комментарии и получать пользователя синхронно:

val userOption:Option[JsObject] = Await.result(usersCollection.find(Json.obj("id" -> userId).one[JsObject], timeout)
//...

Кроме этого, я мог бы:

Получите каждого пользователя асинхронно, но затем я должен представить некоторые функциональные возможности, чтобы ждать, пока все пользователи не будут выбраны, чтобы вернуть ответ, и мой код, вероятно, станет беспорядком.

Сохраните полный пользовательский объект - по крайней мере, что мне нужно для комментария (изображение, имя и т. Д.) В каждом комментарии. Эта избыточность может стать проблематичной для управления, поскольку каждый раз, когда пользователь что-то меняет (в зависимости от данных, хранящихся в комментариях), мне приходится просматривать все комментарии в базе данных и изменять их.

Каков правильный шаблон для применения здесь?

Ответы на вопрос(1)

Ваш ответ на вопрос