我正在尝试对Mongoose进行查询,该查询在单个模式上需要多个条件,但是看来我无法正确创建它。
模式如下(简化):
const Event = new Schema ({
owner: Number,
contribs: [ Number ],
status: String, // can be "open" or "closed"
end_date: Date
})
给出一个数字'user_id',我需要搜索所有可立即解决所有这些情况的事件:
“ two_days_ago”是创建查询之前计算的日期。
我正在尝试使用此过滤器,但无法正常工作:
let filter: any = {
$or: [
{ owner: user_id },
{ contribs: user_id }
],
$and: [
{
$or: [
{ status: { $ne: "closed" } },
{
$and:
[
{ status: "closed" },
{ updated: { $gte: two_days_ago } }
]
}
]
}
]
};
也许有些愚蠢,但我无法解决。请帮忙:-)