0
나는 이와 같이 보이는 MongoDB Mongoose 이벤트 스키마를 가지고 있습니다.MongoDB 중첩 된 부울이 참인 경우 쿼리
나는 그 날 일어나고있는 이벤트를 조회 할 필요가...
details: {
startDate: String,
endDate: String,
startTime: Number,
endTime: Number,
days: {
monday: Boolean,
tuesday: Boolean,
wednesday: Boolean,
thursday: Boolean,
friday: Boolean,
saturday: Boolean,
sunday: Boolean,
},
},
...
, 즉, 그 날과 시작 날짜를 행사, 또는 미래의 날짜에서 과거 날짜에 시작 날짜와 종료 날짜가 사건입니다 그 요일은 해당 요일에 해당됩니다. 예를 들어 매주 금요일 금요일에 열리는 해피 금요일 이벤트, 시작일은 2017 년 1 월 1 일, 종료일은 2017 년 12 월 31 일이며, 매주 금요일 금요일에 열리는 지 어떻게 쿼리 할 수 있습니까?
이것은 내가 가지고있는 것이며, 나는 이제 약간 잃어버린다.
const todayDateISO = moment().startOf('d').add(1, 'd').toISOString();
const todayDay = moment().startOf('d').add(1, 'd').format('dddd');
Event.find({
$or: [
{ 'details.startDate': todayDateISO },
{
$and: [
{
$and: [
{ 'details.startDate': { $lte: todayDateISO } },
{ 'details.endDate': { $gte: todayDateISO } },
],
},
{
// details.days.[day] is true
}
]
},
],
}).sort({ 'profile.startTime': 1 }).exec(),
어떤 도움이 크게 감사합니다 :)
이
'startDate' 및'endDate '(YYYY-MM-DD/DD-MM-YYYY)의 형식은 무엇입니까? 그들은 날짜 형이어야합니다. –
@BertrandMartel graphQL에는 날짜 유형이 없으며 쿼리 할 때 사용하기 때문에 ISO 문자열로 저장합니다 (예 :'new Date(). toISOString()'). – alfiepoleon