MongoDB: получить данные по перепискам для текущего пользователя

Небольшое приложение для переписки, которое позволяет общаться как с несколькими участниками так и с одним.

Модели бд:

UserSchema:

{
    email: {
        type: String,
        required: true,
        unique: true
    },
    username: String,
    avatar: {
        type: String,
        default: path.resolve('public/images/avatars/default_user.jpg')
    },
    password: {
        type: String,
        required: true
    },
    facebookId: String,
    googleId: String
}

RoomSchema:

{
        ownerId: {
            type: String,
            required: true
        },
        title: {
            type: String,
            required: true
        },
        description: String,
        image: {
            type: String,
            default: path.resolve('/images/chats/default_chat.jpg')
        },
        users: [String]
    }

MessageSchema:

{
        senderId: {
            type: String,
            required: true,
        },
        receiverId: {
            type: String,
            required: true,
        },
        text: {
            type: String,
            required: true,
        }
    }

В схеме MessageSchema, receiverId может быть как и определить (ID) пользователя (если это переписка двух человек), а также и определитель комнаты (если разговор между несколькими участниками).

Задача написать запрос, который вытащит все личные беседы для текущего пользователя (данные о пользователях, с которыми я переписывался) и все комнаты, в которых я состою. Как этого достичь?


Ответы (0 шт):