@dryuzhuk

Как сравнить элементы из двух коллекций базы данных Mongo?

В базе есть две коллекции, users которая содержит :

_id: "638ee73d6b7060ad5d9ffb35"
userId:"638ee1093929c060db5941f3"
firstName: ""
lastName: ""
phoneNumber: ""
webSite: ""
address: ""
specialization: ""
experience: ""
timings: [08:00, 09:00, 10:00, 11:00, 12:00]
start_time: "08:00"
end_time: "17:00"

и коллекция appointments:

id: "63a19017f3ea2430b0d26bfe"
userId: "639a2440254119ea2c1f4c6a"
masterId: "638ee73d6b7060ad5d9ffb35"
masterInfo: Object (Этот объект содержит данные из коллекции users)
date: ""
time: [09:00]


как сравнить, к примеру, если userId (из коллекции users) равен masterInfo.userId и timings содержит в себе значение time, то вывести массив timings без этого элемента.
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
victormayorov
@victormayorov
Frontend разработчик
Вернет либо массив с timings без учета времени (time) из appointments либо вернет [null];
users.map((user) => {
    const findAppointments = appointments.find((item) => item.masterInfo.userId === user.userId && user.timings.some((time) => item.time.includes(time)));
    if (!findAppointments) return null;
    return user.timings.filter((time) => !findAppointments.time.includes(time));
}).flat();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы