К примеру есть модель Room, Message и User.
Schema Message = {
title: { type: Schema.Types.String, require: true },
room: { type: Schema.Types.ObjectId, ref: "User" },
user: { type: Schema.Types.ObjectId, ref: "User" },
hideForUsers: [{ type: Schema.Types.ObjectId, ref: "User" }],
}
MessageModel.find({ room: roomId});
Тут нахожу все сообщения по Id комнаты.
Во время запроса у меня есть UserId, как проверить есть ли этот UserId в массиве hideForUsers у Message и если он существует то исключить этот документ для конечного результата.
Не знаю вообще правильно ли делаю. Нужен функционал удаление сообщений из комнаты с возможностью удалить свое сообщение для самого себя или для всех юзеров в комнате.
Если выбрал для самого себя то хочу добавить свой UserId в массив hideForUsers, и при запросе определить показать ли это сообщение для меня или нет.