Я новичок в MongoDB и застрял в запросе. Пожалуйста, помогите мне.
У меня есть две коллекции с именами staffMembers
и membersTimeSlots
, ответы которых следующие:
Вот ответ коллекции staffMembers
:
{
"_id" : ObjectId("5f0c42d86b559419d62efe46"),
"services" : [
ObjectId("5ebbfd29b117f50dac1039e4")
],
"listing" : ObjectId("5ebbf95fb117f50dac1039d1"),
"user" : ObjectId("5b923025ff5da86cbd425813"),
"availabilitySeasons" : [
{
"from" : ISODate("2020-07-13T05:30:00.000+05:30"),
"to" : ISODate("2021-07-13T05:30:00.000+05:30"),
"operationalHours" : [
{
"day" : "Monday",
"hours" : [
{
"from" : "11:00",
"to" : "16:00"
}
]
},
{
"day" : "Wednesday",
"hours" : [
{
"from" : "11:00",
"to" : "15:00"
}
]
},
{
"day" : "Friday",
"hours" : [
{
"from" : "10:00",
"to" : "17:00"
}
]
},
{
"day" : "Sunday",
"hours" : [
{
"from" : "10:00",
"to" : "18:00"
}
]
}
]
}
],
"name" : "Steve Rogers",
"bookingInterval" : 30,
"closeSalesBefore" : 0,
"created" : ISODate("2020-07-13T16:47:44.873+05:30"),
"updated" : ISODate("2020-07-13T16:47:44.873+05:30"),
}
Вот ответ на коллекцию membersTimeSlots
:
/* 1 createdAt:7/13/2020, 4:47:45 PM*/
{
"_id" : ObjectId("5f0c42d99c058304f7a5616a"),
"date" : ISODate("2020-07-13T05:30:00.000+05:30"),
"dayOfWeek" : 1,
"staffMember" : ObjectId("5f0c42d86b559419d62efe46"),
"startTime" : 660
},
/* 2 createdAt:7/13/2020, 4:47:45 PM*/
{
"_id" : ObjectId("5f0c42d99c058304f7a5616b"),
"date" : ISODate("2020-07-13T05:30:00.000+05:30"),
"dayOfWeek" : 1,
"staffMember" : ObjectId("5f0c42d86b559419d62efe46"),
"startTime" : 675
}
конец и т. Д.
У меня есть следующие параметры для поиска доступных временных интервалов:
"services": ObjectId("5ebbfd29b117f50dac1039e4"),
"listing" : ObjectId("5ebbf95fb117f50dac1039d1"),
"monthStartDate": "2020-07-01",
"monthEndDate": "2020-07-31",
"currentTime": 1594650192,
"bookingInterval": 30
Мне нужны свободные временные интервалы. Пожалуйста, помогите мне в этом вопросе.