Я пытаюсь выполнить запрос в понедельник goose, который требует нескольких условий для одной схемы, но, похоже, я не могу создать его правильно.
Схема следующая (упрощенная ):
const Event = new Schema ({
owner: Number,
contribs: [ Number ],
status: String, // can be "open" or "closed"
end_date: Date
})
Учитывая число c 'user_id', мне нужно найти все События, которые разрешают все эти условия сразу:
- владелец user_id ИЛИ содержит user_id
- статус НЕ «закрыт» ИЛИ статус «закрыт» И end_date> two_days_a go
«two_days_a go» - это дата, вычисленная до создания запроса .
Я пробую этот фильтр, но он не работает:
let filter: any = {
$or: [
{ owner: user_id },
{ contribs: user_id }
],
$and: [
{
$or: [
{ status: { $ne: "closed" } },
{
$and:
[
{ status: "closed" },
{ updated: { $gte: two_days_ago } }
]
}
]
}
]
};
Возможно, это что-то глупое, но я не могу решить это. Пожалуйста, помогите: -)