Я создаю API для небольшой социальной сети, и я столкнулся с дизайнерским решением, которое я должен принять. Я работаю с Express и MongoDB с mongoose для работы с базой данных.
У меня есть два документа: пользователи и сообщения. Я хочу, чтобы пользователи могли отмечать сообщения в качестве избранных. Я предложил два разных способа реализации:
Вариант A: сохранение избранного в пользовательском документе. Это позволяет легко показать все любимые сообщения пользователя. Но как бы я опрашивал пользователей, которые добавили в избранное определенную публикацию?
UserSchema:
favorite_posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "posts"
}
]
Вариант B: сохранение пользователей, которые нажимают кнопку избранного в почтовом документе. Преимущество заключается в том, что вы можете легко отображать всех пользователей, добавивших в избранное сообщение. Но как мне перечислить все сообщения, которые один конкретный пользователь отметил как избранные.
PostSchema:
users_favorited: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "users"
}
]
Может кто-нибудь объяснить мне, как запрашивать такие вещи? Я не становлюсь умнее из документации ...: (